test4 [Kotlin] Kotest 사용해보기 코틀린에는 kotest라는 테스트 프레임워크가 존재합니다. 코틀린을 사용한다면 자바에서 사용하던 assertj대신 한 번쯤 kotest를 사용해보는 것도 좋다고 생각합니다. 간단히 java에서 사용하던 방식의 테스트를 작성하고 해당 코드를 kotest로 변경하는 과정을 소개해보겠습니다. Quick Start kotest는 JUnitPlatform gradle plugin을 사용합니다. 최소 4.6 버전 이상의 Gradle이 필요하기 때문에 버전을 꼭 확인해야 합니다. (최근에는 gradle 7.x 버전이 나오고 있기 때문에 새 프로젝트라면 큰 문제는 없습니다.) // gradle + groovy test { useJUnitPlatform() } // dependency testImplementation .. 2022. 5. 4. [Spring] MockMvc 를 이용한 컨트롤러 테스트 스프링 프레임워크에는 MockMvc라는 Spring MVC Test 프레임워크가 존재합니다. 서버를 구동하고 있지 않아도 Spring MVC 요청을 처리하는 모듈에서 모의 서블릿을 전달하고 디스패처 서블릿을 구동합니다. 즉, MockMvc는 모의 요청, 응답을 이용해 테스트하고자 하는 시나리오를 가볍게 테스트할 수 있는 프레임워크입니다. 오늘은 MockMvc를 간단하게 알아보고, Controller를 테스트 하는 코드를 작성하고자 합니다. MockMvc 설정 MockMvc를 이용하여 요청을 보내기 위해 몇가지 클래스를 먼저 알아둬야 합니다. MockMvcBuilders.* MockMvcRequestBuilders.* MockMvcResultMatchers.* MockMvcResultHandlers.* 위.. 2022. 4. 23. [레벨 1 돌아보기] 테스트 코드 작성을 위한 규칙 레벨 1 미션의 주요 학습 목표는 TDD입니다. 그 이후 모든 과제를 TDD로 수행하다보니, 좋은 테스트 코드를 작성하기 위한 규칙을 만들어야 했는데요. 레벨 1을 돌아보며 좋은 테스트 코드를 작성하기 위한 규칙을 재정립하고자 이 포스팅을 작성하게 됐습니다. 먼저 좋은 테스트 코드라는 정의를 내리기 전에 테스트 코드를 왜 작성해야 하는지가 중요합니다. 저도 지금 생각해보니 학습목표이기 때문에 관성적으로 작성했다 라는 답변이 가장 먼저 떠올랐습니다. 이건 이유가 되지 않는 것 같고 다른 이유를 좀 더 고민해보았습니다. 테스트는 왜 작성하는가? 저는 아래 3가지 이유로 테스트 코드를 작성해왔습니다. 1. 시간 단축 하나의 기능을 구현할 때마다 실제 애플리케이션을 실행한다면 얼마나 불편할까요? 특히 나중에 여.. 2022. 4. 17. [Java] @BeforeEach와 독립적인 단위 테스트 테스트 코드를 작성하다보면 공통적으로 갖는 상태를 필드 변수로 선언하고 @BeforeEach 애노테이션을 사용하여 각 테스트가 실행 되기 전 필드 변수를 초기화 해줍니다. 테스트 메서드마다 상태를 초기화할 수 있어 독립적으로 테스트를 유지할 수 있고 테스트가 돌아가는 지점의 코드가 간결해져 많이 이용하곤 하는데요. 정말 BeforeEach를 사용하는 것이 좋은 점만 있을까요? @BeforeEach의 사용으로 인해 발생하는 문제점을 알아보고 이 문제를 해결할 수 있는 방안에 대해 포스팅해보려합니다. BeforeEach를 사용한 테스트코드 먼저 @BeforeEach를 사용하여 테스트 픽스처를 초기화하는 테스트를 간단하게 만들어봅시다. class WalletTest { private Wallet wallet;.. 2022. 4. 6. 이전 1 다음