+
+
+
+
+
+
diff --git a/src/test/java/com/gdsc/blog/BlogApplicationTests.java b/src/test/java/com/gdsc/blog/BlogApplicationTests.java
index 533a031..26eb524 100644
--- a/src/test/java/com/gdsc/blog/BlogApplicationTests.java
+++ b/src/test/java/com/gdsc/blog/BlogApplicationTests.java
@@ -1,14 +1,29 @@
package com.gdsc.blog;
+import com.gdsc.blog.article.entity.Article;
+import com.gdsc.blog.article.repository.ArticleRepository;
+import com.gdsc.blog.article.service.ArticleService;
+import com.gdsc.blog.comment.entity.Comment;
+import com.gdsc.blog.comment.repository.CommentRepository;
+import com.gdsc.blog.comment.service.CommentService;
+import com.gdsc.blog.user.controller.UserController;
import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Profile;
+import java.time.LocalDateTime;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
@SpringBootTest
@Profile("test")
class BlogApplicationTests {
- @Test
- void contextLoads() {}
-
+ @Test
+ void contextLoads() {
+ assertTrue(true);
+ }
}
diff --git a/src/test/java/com/gdsc/blog/article/service/ArticleServiceTest.java b/src/test/java/com/gdsc/blog/article/service/ArticleServiceTest.java
new file mode 100644
index 0000000..dda5054
--- /dev/null
+++ b/src/test/java/com/gdsc/blog/article/service/ArticleServiceTest.java
@@ -0,0 +1,260 @@
+package com.gdsc.blog.article.service;
+
+import com.gdsc.blog.article.dto.ArticleCreateDto;
+import com.gdsc.blog.article.dto.ArticleDto;
+import com.gdsc.blog.article.dto.ArticleUpdateDto;
+import com.gdsc.blog.article.entity.Article;
+import com.gdsc.blog.user.entity.User;
+import com.gdsc.blog.user.entity.UserRole;
+import com.gdsc.blog.user.service.UserService;
+import jakarta.transaction.Transactional;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.jupiter.api.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.Profile;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.NoSuchElementException;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+@Slf4j
+@SpringBootTest
+@Profile("test")
+@TestInstance(TestInstance.Lifecycle.PER_CLASS) // @BeforeAll을 사용하기 위해 필요
+class ArticleServiceTest {
+
+ @Autowired
+ private ArticleService articleService;
+
+ @Autowired
+ private UserService userService;
+
+ User user;
+ User admin;
+
+ @BeforeAll
+ void setUp() {
+ // 회원 가입
+ user = userService.signup(User.builder()
+ .username("user")
+ .email("user@test.com")
+ .password("password")
+ .build());
+ admin = userService.signup(User.builder()
+ .username("admin")
+ .email("admin@admin.com")
+ .password("password")
+ .roles(Collections.singletonList(UserRole.ROLE_ADMIN))
+ .build());
+ userService.becomeAdmin(admin.getUsername());
+ }
+
+ @Test
+ @DisplayName("게시글 생성")
+ @Transactional
+ void createArticle() {
+ // given
+ ArticleCreateDto articleCreateDto = ArticleCreateDto.builder()
+ .title("제목")
+ .content("내용")
+ .build();
+ // when
+ ArticleDto article = articleService.createArticle(articleCreateDto, user.getUsername());
+
+ // then
+ assertEquals(articleCreateDto.getTitle(), article.getTitle());
+ assertEquals(articleCreateDto.getContent(), article.getContent());
+ assertEquals(user.getUsername(), article.getUsername());
+ assertNotNull(article.getIdx());
+ }
+
+ @Test
+ @DisplayName("유저별 게시글 조회")
+ @Transactional
+ void getUserArticle() {
+ // given
+ List