본문 바로가기
CRUD 게시판

RestApi 게시판 CRUD 만들기 (3) - Service Test

by YoonJong 2022. 10. 12.
728x90

postServiceTest 를 만들어 테스트

 

가장 위 설정부분

@SpringBootTest
class PostServiceTest {

    @Autowired
    PostService postService;

    @Autowired
    PostRepository postRepository;

    @BeforeEach
    void clean() {
        postRepository.deleteAll();
    }
  • postService 와 PostRepository 를 주입받는다.
  • @BeforeEach를 이용해 각 테스트 시작 전 postRepository를 모두 초기화(삭제) 해준다.

@Test
@DisplayName("게시물_저장_테스트")
void create() {
    CreatePostDto post = CreatePostDto.builder()
            .title("제목1")
            .content("내용1")
            .build();

    postService.create(post);

    assertThat(postRepository.findAll().size()).isEqualTo(1);
    assertThat(postRepository.findAll().get(0).getTitle()).isEqualTo("제목1");
    assertThat(postRepository.findAll().get(0).getContent()).isEqualTo("내용1");
}
@Test
@DisplayName("게시글_단건조회_테스트")
void findOne() {
    Post post = Post.builder()
            .title("제목1")
            .content("내용1")
            .build();

    Post savedPost = postRepository.save(post);
    PostsResponse findPost = postService.findOne(savedPost.getId());

    assertThat(findPost.getTitle()).isEqualTo("제목1");
    assertThat(findPost.getContent()).isEqualTo("내용1");

}
@Test
@DisplayName("게시글_전체조회_테스트")
void findAll() {
    Post post1 = Post.builder()
            .title("제목1")
            .content("내용1")
            .build();

    Post post2 = Post.builder()
            .title("제목2")
            .content("내용2")
            .build();

    postRepository.save(post1);
    postRepository.save(post2);

    List<PostsResponse> posts = postService.findAll();

    assertThat(posts.size()).isEqualTo(2);
    assertThat(posts.get(0).getTitle()).isEqualTo("제목1");
    assertThat(posts.get(1).getTitle()).isEqualTo("제목2");
}
@Test
@DisplayName("게시글_수정_테스트")
void update() {
    Post post = Post.builder()
            .title("제목1")
            .content("내용1")
            .build();

    Post savedPost = postRepository.save(post);

    UpdatePostDto updatePostDto = UpdatePostDto.builder()
            .title("제목변경")
            .content("내용변경")
            .build();

    postService.update(savedPost.getId(), updatePostDto);
    Post findPost = postRepository.findById(savedPost.getId()).get();

    assertThat(findPost.getTitle()).isEqualTo("제목변경");
    assertThat(findPost.getContent()).isEqualTo("내용변경");

}
@Test
@DisplayName("게시글_삭제_테스트")
void delete() {
    Post post = Post.builder()
            .title("제목1")
            .content("내용1")
            .build();

    Post savedPost = postRepository.save(post);

    postService.delete(savedPost.getId());
    List<Post> posts = postRepository.findAll();

    assertThat(posts.size()).isEqualTo(0);
}

728x90

댓글