ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [TDD] @DataJpaTest
    TDD 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