[Spring Boot] Jpa 테스트 작성 시 영속성 컨텍스트 관련 주의사항


[Spring Boot] Jpa 테스트 작성 시 영속성 컨텍스트 관련 주의사항

테스트용 엔티티를 돌려쓰지 말 것! 테스트 코드를 작성하다보면 Mock 객체를 매번 생성해주어야한다. @DataJpaTest 를 통해 트랜잭션 테스트를 진행하다보면 유독 많이 사용되는 객체가 존재한다. 예로 회원서비스는 대부분의 서비스가 의존하고 있기 때문에 회원 엔티티를 Mocking 하는 경우가 아주 많다. 만약 @BeforeAll 과 같은 메서드를 사용하거나, 테스트 클래스 변수 선언을 통해, Member 엔티티를 단 하나 생성하고, 테스트 메서드간 돌려 쓴다면, 테스트가 의도치 않게 실패할 수 있다. 또 테스트가 실행되는 순서에 따라 서로 논리적인 의존성이 발생하기도 한다. 그 이유는 다음과 같다. @DataJpaTest 어노테이션은 내부에 @Transactional 이 붙어서 테스트가 하나 끝나..


원문링크 : [Spring Boot] Jpa 테스트 작성 시 영속성 컨텍스트 관련 주의사항