Kotest Konform 매처(Konform Matchers)

Konform 매처는 테스트에 사용하여 지정된 개체가 유효성 검사를 통과했는지 또는 유효성 검사에 실패했는지 확인할 수 있다.

Kotest는 Konform과 함께 사용할 수 있는 다양한 매처(mathers)를 제공한다. 이 매처는 테스트에 사용하여 지정된 개체가 유효성 검사를 통과했는지 또는 유효성 검사에 실패했는지 확인할 수 있다.

이 매처를 사용하려면, 빌드에 io.kotest.extensions:kotest-assertions-konform:<version> 구현을 추가해야 한다. 이 모듈은 JVM 및 JS 대상 모두에 사용할 수 있다.

기본 데이터 클래스부터 보도록 하겠다:

data class UserProfile(
   val fullName: String,
   val age: Int?
)

그런 다음 다음과 같은 사용자 프로필 유효성 검사기가 주어진다:

val validateUser = Validation<UserProfile> {
  UserProfile::fullName {
     minLength(4)
     maxLength(100)
  }

  UserProfile::age ifPresent {
     minimum(21)
     maximum(99)
  }
}

다음과 같이 인스턴스가 유효성 검사를 통과하는지 테스트할 수 있다:

val alice = UserProfile("Alice", 25)
validateUser shouldBeValid alice

그리고 다음과 같은 특정 오류 메시지를 통해 인스턴스가 유효성 검사에 실패했는지 테스트할 수 있다:

val bob = UserProfile("bob", 18)
validateUser.shouldBeInvalid(bob) {
  it.shouldContainError(UserProfile::fullName, "must have at least 4 characters")
  it.shouldContainError(UserProfile::age, "must be at least '21'")
}
매처 설명
validation.shouldBeValid(value) 주어진 값에 대해 유효성 검사가 유효한지 확인한다.
validation.shouldBeInvalid(value) 주어진 값에 대해 유효성 검사가 유효하지 않은지 확인한다.
validation.shouldBeInvalid(value) { block } 주어진 값에 대해 유효성 검사가 유효하지 않은지 확인하고, 유효하지 않은 값으로 블록을 실행한다.

참조




최종 수정 : 2024-04-14