Kotest 를 사용하는 이유
- 중첩된 테스트 코드의 가독성을 가독성을 높혀줄 수 있다
- kotlin 에서 DSL (Domain Specific Language, 도메인 특화 언어) 를 이용하여 테스트 코드를 보기 쉽게 작성하며 비 개발자도 쉽게 알아 볼 수 있도록 명확하게 나타낼 수 있다.
Kotlin Third-Party Libarary
1. Assertion Libarary
- 테스트 통과 여부를 판단하는 보조 라이브러리
2. Property Testing
- 여러 입력값을 테스트로 만드는 보조 라이브러리
Kotest 유형
10가지 유형은 모두 같은 기능을 하며 테스트를 표현하는 방법이 다른 것이므로, 자신이 생각하는 좋은 테스트 코드를 짜기 위한 클래스들을확장하여 사용하면 된다.
1가지 유형 중 BDD 프레임 워크를 지향하는 Behavior Spec 에 관하여 간략하게 사용법을 알아보겠습니다.
Behavior Spec
BDD (Behavior Driven Development, 행위 주도 개발) 프레임 워크
Given, When, Then 을 사용하여 어떠한 행위가 언제 실행되며 어떠한 결과를 나타나내는가를 명확하게 보여주는 방법이다.
사용 방법
class MyTests : BehaviorSpec({
xgiven("this is disabled") {
When("disabled by inheritance from the parent") {
then("disabled by inheritance from its grandparent") {
// disabled test
}
}
}
given("this is active") {
When("this is active too") {
xthen("this is disabled") {
// disabled test
}
}
}
})
`given`, `when`, `then` 을 사용하여 간략하게 표현할 수 있다.
또한 앞에 x를 선언하여 해당 테스트를 생략하고 실행할 수 있다.
MockK
- DSL 기반 Kotlin 모의 라이브러리
- 코드기반, 어노테이션 기반 대부분 Mokito와 동일
참고 사이트 :
https://kotest.io/docs/quickstart
https://jaehhh.tistory.com/118
'Kotlin' 카테고리의 다른 글
Sequence 란 무엇인가? (0) | 2023.07.23 |
---|