@springboottest

Java

@SpringBootTest / @DataJpaTest 차이점 과 JPA 영속성 컨텍스트

Memory db를 이용한 Repository Test Repository layer의 테스트를 위해서 내장 Memory DB를 많이 사용합니다. Memory DB 를 사용하는 방법도 천차만별일텐데 크게는 2가지 정도라 생각됩니다. @SpringBootTest+ Memory DB 연결 @DataJpaTest 두 방법의 차이점과 [Junit & JPA의 영속성 컨텍스트]로 인한 여러 가지 현상에 대해 정확히 알기 위해 글을 작성합니다. 두 가지 방법의 쿼리 로그가 다른데? 위 2가지 방법 중 어느것을 선택해서 Repository Layer 테스트를 진행할까 고민하던 중 제 예상과는 다른 쿼리 로그가 찍히는 것을 확인했습니다. 테스트한 코드는 아래 2가지입니다. 예제 코드 // Member.java @Get..

Java

Mockito @Mock @MockBean @Spy @SpyBean 차이점

예제 코드 https://github.com/cobiyu/MockitoSample Test Double이 왜 필요한 지부터 시작하는 기본적인 테스트 코드부터 한 단계씩 발전시켜나가며 Mockito의 어노테이션들의 정확한 쓰임새에 대해 살펴보겠습니다. github에 케이스별로 파일별로 구분 지어 놨으니 참고 부탁드립니다. Test Double (Mockito) 스프링과 Junit을 이용해서 테스트 코드를 작성하다 보면 테스트 환경(database, api)을 구현하는 코드까지 작성해야 하고 실제 테스트할 코드보다 환경을 구현하는 코드가 훨씬 더 복잡해지게 됩니다. 이런 문제 영역을 해결하기 위해서 테스트 더블 이라는 것이 나왔고 Java진영에서는 대표적으로 Mockito가 있습니다. Mockito의 어노테..

코비코비
'@springboottest' 태그의 글 목록