Kotest 구성(Configuration)
Kotest의 Property Testing 구성에 대해서 설명한다.
구성(Configuration)
Kotest는 프로퍼티 테스트를 실행할 때 몇 가지 구성 옵션을 지정할 수 있는 기능을 제공한다. 테스트 메서드에 PropTestConfig
인스턴스를 전달하여 이를 수행한다.
예를 들어:
class PropertyExample: StringSpec({
"String size" {
forAll<String, String>(PropTestConfig(options here...)) { a,b ->
(a + b).length == a.length + b.length
}
}
})
시드(Seed)
일반적으로 사용되는 구성 옵션은 무작위 소스에 사용되는 시드(seed)를 지정하는 것이다. 이 옵션은 테스트가 실행될 때마다 동일한 값을 반복하려는 경우에 사용된다. 테스트 실패를 발견하고 해당 특정 값 집합이 회귀 테스트로서 향후에도 계속 실행되도록 하려는 경우 이 옵션을 사용할 수 있다.
시드 사용 방법에 대한 자세한 내용을 보려면 여기를 클릭한다.
최소 실패(Min Failure)
기본적으로 Kotest는 실패를 허용하지 않는다. 비결정적 테스트를 여러 번 실행하고 소수의 실패를 기꺼이 받아들이고 싶을 수도 있다. 설정에서 이를 지정할 수 있다.
class PropertyExample: StringSpec({
"some flakey test" {
forAll<String, String>(PropTestConfig(maxFailure = 3)) { a,b ->
// max of 3 inputs can fail
}
}
})
PropTestListener
프로퍼티 테스트에서 각 테스트 반복마다 설정 및 해제를 수행해야 하는 경우가 있다. 이를 위해 PropTestConfig
에 PropTestListener
를 등록할 수 있다.
class PropertyExample: StringSpec({
"some property test which require setup and tear down in each iteration" {
forAll<String, String>(PropTestConfig(listeners = listOf(MyPropTestListener))) { a,b ->
// some assertion
}
}
})
참조
최종 수정 : 2024-04-14