-
[TDD] @DataJpaTestTDD 2024. 9. 10. 23:11
JPA와 관련된 @Component 들만 로딩하여 단위테스트를 진행해준다
그래서 @Entity @Repository Bean들만 스캔하여 단위테스트를 진행한다
기본적으로 @DataJpaTest라는 어노테이션이 붙어 있으면 Transactional이고 각 테스트 종료 후 롤백이 된다.
여기서는 인메모리 데이터 베이스를 사용한다고 하는데 이것때문에 에러가 나기도 해서, 나는 실제 내가 사용하는 MySQL 메모리로 테스트 하기위해 적힌 대로 @AutoConfigureTestDatabase를 써서 replace.None 값으로 변경해주었다.
영속성 컨텍스트도 적용된다
따라서 repository.save() 하면 영속성 컨텍스트 안에 저장하고 repository.findbyId() 하면 영속성 컨텍스트 안에서 찾는거임
영속성 컨텍스트가 변경을 감지하여 알아서 @Test 실행 도중에 실시간으로 영속성 컨텍스트 내 엔티티를 업데이트해줌
그래서 update 나 findById 같이 다시 변경되었을 entity를 재조회 할 필요가 없다'TDD' 카테고리의 다른 글
[TDD] @Captor ArgumentCaptor (1) 2024.12.01 [TDD] @Ignore @Disabled (0) 2024.09.11 [TDD] @Spy (0) 2024.09.01 [TDD] @Mock vs @MockBean (0) 2024.08.31 [TDD] Mockito annotations.zip (0) 2024.08.31