테스트
-
코틀린에서 테스트 하기 (⏳)KOTLIN 2022. 11. 27. 14:16
자바에서 실행했던 인수테스트와 API테스트를 코틀린에서도 적용하는 방법을 알아보자. API 테스트 먼저 API테스트는 간단하게 mock()을 주입해줌으로서 구현할 수 있다. 먼저 dependency에 추가해준다. dependencies { testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.springframework.restdocs:spring-restdocs-mockmvc") testImplementation("io.mockk:mockk:1.12.0") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5:1.6.20") test..
-
테스트 코드 리팩토링 (Feat. 단위테스트, 최적화, 인수테스트 구현하기)학습로그 2022. 6. 10. 10:26
이전의 테스트 코드는 단위테스트 구성이 전혀 되어있지 않았고, 테스트 비용을 생각하는 최적화부분도 없고 심지어 인수테스트 조차 없었다...!🤦♀️ 코드리뷰를 받으면서 테스트 코드 리팩토링도 함께 진행하였는데, 가장 먼저 1) 테스트 환경을 분리하고 2) 단위테스트 와 3) 인수테스트 도 구현하도록 하였다. 또한, @SpringBootTest, @DataJpaTest 등의 어노테이션을 사용하여 테스트를 진행할 때, 해당 어노테이션의 옵션이 다르거나, mockBean의 생성 부분들에 영향을 받게 되면 추가로 어플리케이션 컨텍스트를 생성하여 테스트를 진행하여 속도를 늦추는 원인이 된다는 것을 배우게 되었다. 즉, 같은 @DataJpaTest와 @SpringBootTest 어노테이션을 적용하여 각각 2개의 테..
-
Repository Layer의 단위테스트 작성Spring 2022. 3. 11. 17:19
비지니스 로직은 도메인 계층에서 발생하고, 엔티티의 영속화 요구는 서비스 계층에서 발생하기 때문에 Repository의 단독 테스트를 진행하기 위해서는 Service 계층과의 관계를 끊어야 한다. SpringBoot에서는 @DataJpaTest 어노테이션을 통해서 JPA컴포넌트와 관련된 Repository의 단위테스트가 가능하도록 해준다. @DataJpaTest DataJpaTest 어노테이션은 JPA와 관련된 설정만을 로드하여 @Entity 어노테이션이 붙은 클래스를 스캔하여 저장소를 구성한다. 트랜잭션을 기본적으로 내장하고 있어 테스트 코드가 종료되면 자동으로 롤백이 이루어진다. 테스트 코드 @RunWith(SpringRunner.class) @DataJpaTest @AutoConfigureTestD..
-
인수테스트 (Acceptance Test) ① 환경 구축 및 작성Spring 2022. 2. 8. 20:10
지난 주, 미션 진행으로 인수테스트 코드를 작성하는 방법을 배웠다. 인수테스트에 대해서 알아보고 미션 수행 후 작성한 코드를 통해서 작성 방법을 정리한다. 인수테스트란 시스템이 예상대로(요구사항대로) 동작하는지 확인할 수 있는 테스트로 개발자 - 테스터 - 고객간의 협업을 기반으로 이루어진다. 인수테스트가 통과되면 우리가 원한대로 기능이 구현되었다는 것을 알 수 있다. 테스트 종류에 따른 의미 테스트 의도 단위 테스트 소프트웨어 설계의 최소 단위(모듈, 컴포넌트)에 맞춰 작성된 테스트 인수 테스트 소프트웨어가 사용자 요구사항을 만족하는지에 맞춰 작성된 테스트 (자동화된 인수테스트는 비용이 저렴) (BLACK BOX) 통합 테스트 단위테스트가 완료된 모듈들을 결합하여 하나의 시스템을 완성하는 과정에 맞춰 ..