Spring/Test
[JUnit] mock을 이용한 신규 생성 로직 단위 테스트(JUnit5, mockito)
[JUnit] mock을 이용한 신규 생성 로직 단위 테스트(JUnit5, mockito)
2022.08.13(메인 사진 출처: https://famunity.net/kotlin-junit5/) 개인프로젝트 진행하며 카페 도메인 신규 생성 서비스 로직에 대한 단위테스트를 적용했던 내용을 기록겸 작성한 글입니다. 서비스 단위 테스트를 위해 JUnit5, mockito를 이용하여 진행하였습니다. 📌 1. 서비스 테스트를 위한 기본 구성 @ExtendWith(MockitoExtension::class) @TestMethodOrder(MethodOrderer.DisplayName::class) internal class CafeServiceTest { @InjectMocks lateinit var mockCafeService: CafeService @Mock lateinit var mockCafeRepository: ..
JUnit5를 이용한 EntityManager로 QueryDSL 테스트해보기
JUnit5를 이용한 EntityManager로 QueryDSL 테스트해보기
2022.02.18QueryDSL을 공부해보면서 간단하게 프로젝트 구성해보고 QueryDSL 사용에 대한 간단한 테스트를 해보았습니다. JUnit을 이용한 QueryDSL 테스트를 진행해보았는데 테스트 진행을 위한 JUnit 환경 설정하는데에 꽤나 시간이 걸렸던 것 같습니다. Repository를 이용한 테스트가 아닌 EntityManager를 가져와서 QueryDSL에 대한 간단한 테스트를 해보려 합니다. EntityManager를 이용한 테스트를 위해서 JUnit 설정이 살짝 달랐는데요. 이에 대한 내용을 정리해보고자 합니다. 📌 1. 기본적인 프로젝트 구성 dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' impl..
[JUnit] Test 환경과 Dev 환경 분리(profile 활용한 DB 환경 분리, JUnit5)
[JUnit] Test 환경과 Dev 환경 분리(profile 활용한 DB 환경 분리, JUnit5)
2022.01.28직전 글에서 단위, 통합테스트 한꺼번에 진행을 위한 구성에 대해서 다루었습니다. 글 작성하고 더 알아보니 잘못된 내용들이 조금 있었더라구요. 이번 글에서는 저번 글에서의 잘못된 내용을 수정하면서 Test 환경과 Dev 환경 분리에 대해서 한 번 정리해보려 합니다. 📌 테스트, 개발 환경 분리를 위한 DB 구성 dependencies { //... runtimeOnly 'mysql:mysql-connector-java' runtimeOnly 'com.h2database:h2' //... } 저는 테스트 환경과 개발 환경 분리를 위한 구성을 해보고자 각각의 환경에서 사용되는 DB를 다르게 설정하였습니다. 저번 글에서는 테스트, 개발 환경 모두 embedded DB(h2)를 사용하다 보니 혼용되어 사용되거나 ..
[JUnit] 단위, 통합 테스트 한꺼번에 진행하기 (SpringBootTest, WebMvcTest)
[JUnit] 단위, 통합 테스트 한꺼번에 진행하기 (SpringBootTest, WebMvcTest)
2022.01.25JPA 관련 테스트 어플리케이션을 개발하다가 JUnit을 사용하여 간단한 테스트 코드를 작성하게 되었습니다. 매번 어플리케이션 실행 후 Postman으로 api 확인하는 것도 귀찮더라구요. 개발 진행 후에 실제로 api가 잘 작동하는지 수시로, 빠르게 확인해보고자 JUnit을 도입하게 되었습니다. 여기서는 간단한 예시를 가지고 Controller 단의 단위테스트를 위한 구성과 Service에서 실제 DB까지 잘 적용이 되는지 확인해보고자 Service 단에서는 통합테스트로 구성하면서 겪은 내용들을 기록하고자 합니다. 📌 1. 기본적인 구성 dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' impleme..