테스트 코드를 도입하며 데이터 초기화는 @AfterEach에서 deleteAll()을 호출하면 될줄 알았습니다. 테스트가 끝날때마다 데이터를 지우니까 항상 깨끗한 상태에서 시작할것이라 생각했습니다.
하지만 테스트가 늘어날수록 각각 테스트는 성공하더라도 전체 테스트가 실패하는 일이 발생했습니다. 테스트 격리가 제대로 되지 않았다는 것을 인지하였고 디버깅을 해보았습니다.
아래의 예제 코드로 설명을 드리자면... @SpringBootTest class UserRepositoryTest { @Autowired private UserRepository userRepository; @AfterEach void cleanup() { userRepository.deleteAll(); // 데이터만 지워지고 시퀀스는 유지됨 } @Test void 첫번째_유저_ID는_1이다() { User user = userRepository.save(new User("alice")); assertThat(user...
원문 링크 : 테스트 격리