Kotlin

Kotest

JUN0126 2023. 6. 8. 15:58

Kotest 를 사용하는 이유

- 중첩된 테스트 코드의 가독성을 가독성을 높혀줄 수 있다

- kotlin 에서 DSL (Domain Specific Language, 도메인 특화 언어) 를 이용하여 테스트 코드를 보기 쉽게 작성하며 비 개발자도 쉽게 알아 볼 수 있도록 명확하게 나타낼 수 있다. 

 

Kotlin Third-Party Libarary

1. Assertion Libarary

 - 테스트 통과 여부를 판단하는 보조 라이브러리

2. Property Testing

 - 여러 입력값을 테스트로 만드는 보조 라이브러리

 

Kotest 유형

Kotest 10가지 유형

 

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