@DisplayName("PostService 테스트")classPostServiceTest{privatePostService postService;privateFakePostRepository postRepository;@BeforeEachvoidsetUp(){ postRepository =newFakePostRepository();// 매 테스트마다 새 레포지토리 postService =newPostService(postRepository);}@TestvoidcreatePost_success(){// Given - BeforeEach에서 이미 준비된 postService 사용CreatePostCommand command =newCreatePostCommand("제목","내용");// WhenPost post = postService.create(command);// ThenassertThat(post.getTitle()).isEqualTo("제목");}}
@BeforeAllstaticvoidinitAll(){// DB 연결 등 비용이 큰 초기화 (1회만)}@BeforeEachvoidsetUp(){// 각 테스트마다 새 객체 생성}@AfterEachvoidtearDown(){// 각 테스트 후 정리 (파일 삭제, 상태 초기화 등)}@AfterAllstaticvoidcleanUpAll(){// 전체 종료 후 정리 (DB 연결 해제 등)}
@SpringBootTestclassPostControllerIntegrationTest{@AutowiredprivatePostRepository postRepository;@BeforeEachvoidsetUp(){ postRepository.deleteAll();// 매 테스트 전 DB 초기화}}