Kotest 코어 매처(Core Matchers)
Kotest 코어 매처 종류에 대해 소개한다.
kotest-assertions-core
모듈에서 제공하는 매처이다.
General | |
---|---|
obj.shouldBe(other) |
주어진 obj와 other가 모두 동일한지 확인한다. |
expr.shouldBeTrue() |
표현식이 참인지 확인한다. expr.shouldBe(true) 와 동일하다 |
expr.shouldBeFalse() |
표현식이 거짓인지 확인한다. expr.shouldBe(false) 와 동일하다 |
shouldThrow<T> { block } |
블록이 T Throwable 또는 T 의 하위 유형을 던지는지 확인한다. |
shouldThrowExactly<T> { block } |
블록이 정확히 T 를 던지는지 확인한다. |
shouldThrowAny { block } |
블록이 모든 유형의 Throwable을 던지는지 확인한다. |
shouldThrowMessage(message) { block } |
코드 블록이 주어진 메시지와 함께 Throwable을 발생시키는지 확인한다. |
Types | |
---|---|
obj.shouldBeSameInstanceAs(other) |
객체를 ID별로 비교한다. 즉, 동일한 참조이다. |
obj.shouldBeTypeOf<T>() |
주어진 참조가 정확히 T 유형인지 확인한다. 하위 클래스는 실패한다. 즉, 1 should beOfType<Number> 는 실패한다. 1은 숫자이지만 런타임 유형은 숫자가 아니기 때문이다. |
obj.shouldBeInstanceOf<T>() |
주어진 참조가 T 유형이거나 T의 하위 클래스인지 확인한다. |
obj.shouldHaveAnnotation(annotationClass) |
객체에 주어진 유형의 주석이 있는지 확인한다. |
obj.shouldBeNull() |
주어진 참조가 null인지 확인한다. |
Comparables | |
---|---|
comp.shouldBeLessThan(other) |
compareTo 를 사용하여 comp 가 other 보다 작은지 확인한다. |
comp.shouldBeLessThanOrEqualTo(other) |
compareTo 를 사용하여 comp 가 other 보다 작거나 같은지 확인한다. |
comp.shouldBeEqualComparingTo(other) |
compareTo 를 사용하여 comp 가 other 와 같은지 확인한다. |
comp.shouldBeEqualComparingTo(other, comparator) |
comp 가 other 와 같은지 확인하기 위해 comparator.compare 를 사용한다. |
comp.shouldBeGreaterThan(other) |
compareTo 를 사용하여 comp 가 other 보다 큰지 확인한다. |
comp.shouldBeGreaterThanOrEqualTo(other) |
compareTo 를 사용하여 comp 가 other 보다 크거나 같은지 확인한다. |
Iterator | |
---|---|
iterator.shouldBeEmpty() |
반복자에 다음 값이 없는지 확인한다. |
iterator.shouldHaveNext() |
반복자가 다음 값을 가지고 있는지 확인한다. |
Maps | |
---|---|
map.shouldContain("key", "value") |
맵에 “key"와 “value” 간의 매핑이 포함되어 있음을 확인한다. |
map.shouldContainAll(other) |
맵이 지정된 맵의 모든 쌍을 포함하고 있는지 확인한다. |
map.shouldContainExactly(other) |
맴이 주어진 맵의 쌍을 정확하게 포함하고 추가 항목이 없음을 확인한다. |
map.shouldContainKey(key) |
맵에 임의의 값을 갖는 ‘key’라는 키가 포함되어 있는지 확인한다. |
map.shouldContainKeys(keys) |
맵에 지정된 모든 키에 대한 매핑이 포함되어 있는지 확인한다. |
map.shouldContainValue(value) |
값이 ‘value’인 매핑이 맵에 하나 이상 포함되어 있는지 확인한다. |
map.shouldContainValues(values) |
맵에 주어진 값이 모두 포함되어 있는지 확인한다. |
map.shouldBeEmpty() |
이 맵이 비어 있음을 확인한다. |
map.shouldMatchAll("k1" to {it shouldBe "v1"}, "k2" to {it shouldBe "v2"}, ...) |
맵의 모든 항목이 제공된 매처와 일치할 수 있다고 단언문하고 맵의 추가 키는 무시된다. |
map.shouldMatchExactly("k1" to {it shouldBe "v1"}, "k2" to {it shouldBe "v2"}, ...) |
맵의 항목이 제공된 매처와 정확하게 일치할 수 있는지 확인한다. |
Strings | |
---|---|
str.shouldBeBlank() |
문자열에 공백만 포함되어 있는지 또는 비어 있는지 확인한다. |
str.shouldBeEmpty() |
문자열의 길이가 0인지 확인한다. |
str.shouldBeLowerCase() |
문자열이 모두 소문자인지 확인한다. |
str.shouldBeUpperCase() |
문자열이 모두 대문자인지 확인한다. |
str.shouldContain("substr") |
문자열에 주어진 하위 문자열이 포함되어 있는지 확인한다. 하위 문자열은 문자열과 같을 수 있다. 이 매처는 대소문자를 구분한다. 이 대소문자를 구분하지 않게 하려면 shouldContainIgnoringCase() 를 사용한다. |
str.shouldContain(regex) |
문자열에 주어진 정규식이 포함되어 있는지 확인한다. |
str.shouldContainADigit() |
문자열에 최소한 하나의 숫자가 포함되어 있는지 확인한다. |
str.shouldContainIgnoringCase(substring) |
문자열에 대소문자를 무시하는 하위 문자열이 포함되어 있는지 확인한다. |
str.shouldContainOnlyDigits() |
문자열에 숫자만 포함되어 있거나 비어 있는지 확인한다. |
str.shouldBeInteger([radix]) |
문자열에 int가 포함되어 있는지 확인하고 이를 반환한다. |
str.shouldContainOnlyOnce(substring) |
문자열에 하위 문자열이 정확히 한 번만 포함되어 있는지 확인한다. |
str.shouldEndWith(suffix) |
문자열이 주어진 접미사로 끝나는지 확인한다. 접미사는 문자열과 같을 수 있다. 이 매처는 대소문자를 구분한다. 대소문자를 구분하지 않게 하려면 매처 앞의 값에 toLowerCase() 를 호출한다. |
str.shouldHaveLength(length) |
문자열이 주어진 길이를 가지고 있는지 확인한다. |
str.shouldHaveLineCount(count) |
문자열에 주어진 수의 줄이 포함되어 있는지 확인한다. str.split("\n").length.shouldBe(n) |
str.shouldHaveMaxLength(max) |
문자열이 주어진 최대 길이보다 길지 않은지 확인한다. |
str.shouldHaveMinLength(min) |
문자열이 주어진 최소 길이보다 짧지 않은지 확인한다. |
str.shouldHaveSameLengthAs(anotherString) |
문자열이 다른 문자열과 길이가 같은지 확인한다. |
str.shouldMatch(regex) |
문자열이 주어진 정규식과 완전히 일치하는지 확인한다. |
str.shouldStartWith("prefix") |
문자열이 주어진 접두사로 시작하는지 확인한다. 접두사는 문자열과 같을 수 있다. 이 매처는 대소문자를 구분한다. 대소문자를 구분하지 않게 하려면 매처 앞의 값에 toLowerCase() 를 호출한다. |
str.shouldBeEqualIgnoringCase(other) |
문자열이 대소문자를 무시하고 다른 문자열과 동일하다고 확인한다. |
str.shouldBeTruthy() |
문자열이 진실임을 확인한다. Truthy는 다음 중 하나이다: [“true”, “yes”, “y”, “1”] |
str.shouldBeFalsy() |
문자열이 거짓임을 확인한다. Falsy는 다음 중 하나이다: [“false”, “no”, “n”, “0”] |
Integers | |
---|---|
int.shouldBeBetween(x, y) |
int가 x와 y 사이에 있고 x와 y를 모두 포함한다고 가정한다. |
int.shouldBeLessThan(n) |
int가 주어진 값 n보다 작은지 확인한다. |
int.shouldBeLessThanOrEqual(n) |
int가 주어진 값 n보다 작거나 같은지 확인한다. |
int.shouldBeGreaterThan(n) |
int가 주어진 값 n보다 큰지 확인한다. |
int.shouldBeGreaterThanOrEqual(n) |
int가 주어진 값 n보다 크거나 같은지 확인한다. |
int.shouldBeEven() |
int가 짝수인지 확인한다. |
int.shouldBeOdd() |
int가 홀수인지 확인한다. |
int.shouldBeInRange(range) |
주어진 범위에 int가 포함되어 있는지 확인한다. |
int.shouldBeZero() |
int가 0인지 확인한다. |
Longs | |
---|---|
long.shouldBetween(x, y) |
long이 x와 y 사이에 있고 x와 y를 모두 포함한하였는지 확인한다. |
long.shouldBeLessThan(n) |
long이 주어진 값 n보다 작은지 확인한다. |
long.shouldBeLessThanOrEqual(n) |
long이 주어진 값 n보다 작거나 같은지 확인한다. |
long.shouldBeGreaterThan(n) |
long이 주어진 값 n보다 큰지 확인한다. |
long.shouldBeGreaterThanOrEqual(n) |
long이 주어진 값 n보다 크거나 같은지 확인한다. |
long.shouldBeInRange(range) |
주어진 범위에 long이 포함되어 있는지 확인한다. |
long.shouldBeEven() |
길이가 짝수인지 확인한다. |
long.shouldBeOdd() |
긴 값이 홀수인지 확인한다. |
long.shouldBeZero() |
길이가 0인지 확인한다. |
Doubles or Floats | |
---|---|
double.shouldBe(value plusOrMinus(tolerance)) |
double이 허용오차 범위 내에서 주어진 값과 같은지 확인한다. 이는 이중 동등성을 테스트하는 데 권장되는 방법이다. |
double.shouldBeBetween(x, y) |
x와 y를 모두 포함하여 double이 x와 y 사이에 있다고 가정한다. |
double.shouldBeLessThan(n) |
double이 주어진 값 n보다 작은지 확인한다. |
double.shouldBeLessThanOrEqual(n) |
double이 주어진 값 n보다 작거나 같은지 확인하다. |
double.shouldBeGreaterThan(n) |
double이 주어진 값 n보다 큰지 확인한다. |
double.shouldBeGreaterThanOrEqual(n) |
double이 주어진 값 n보다 크거나 같은지 확인한다. |
double.shouldBePositive() |
double이 양수인지 확인한다. |
double.shouldBeNegative() |
double이 음수인지 확인한다. |
double.shouldBePositiveInfinity() |
double이 양의 무한대임을 확인한다. |
double.shouldBeNegativeInfinity() |
double이 음의 무한대임을 확인한다. |
double.shouldBeNaN() |
double이 숫자가 아닌 상수 NaN인지 확인한다. |
double.shouldBeZero() |
double이 0인지 확인한다. |
BigDecimal | |
---|---|
bigDecimal.shouldHavePrecision(n) |
bigDecimal 정밀도가 주어진 값 n과 같은지 확인한다. |
bigDecimal.shouldHaveScale(n) |
bigDecimal 소수 자릿수가 주어진 값 n과 같은지 확인한다. |
bigDecimal.shouldBePositive() |
bigDecimal이 양수임을 확인한다. |
bigDecimal.shouldBeNegative() |
bigDecimal이 음수임을 확인한다. |
bigDecimal.shouldBeZero() |
bigDecimal이 0이지 확인한다. |
bigDecimal.shouldBeLessThan(n) |
bigDecimal이 주어진 값 n보다 작은지 확인한다. |
bigDecimal.shouldBeLessThanOrEquals(n) |
bigDecimal이 주어진 값 n보다 작거나 같은지 확인한다. |
bigDecimal.shouldBeGreaterThan(n) |
bigDecimal이 주어진 값 n보다 큰지 확인한다. |
bigDecimal.shouldBeGreaterThanOrEquals(n) |
bigDecimal이 주어진 값 n 보다 크거나 같은지 확인한다. |
bigDecimal.shouldBeInRange(r) |
bigDecimal이 주어진 범위에 있는지 확인한다. |
Channels | |
---|---|
channel.shouldReceiveWithin(duration) |
채널이 기간 내에 수신해야 한하였는지 확인한다. |
channel.shouldReceiveNoElementsWithin(duration) |
채널이 기간 내에 어떤 요소도 수신해서는 안 되었는지 확인한다. |
channel.shouldHaveSize(n) |
채널이 닫히기 전에 정확히 n 개의 요소를 받아야 한하였는지 확인한다. |
channel.shouldReceiveAtLeast(n) |
채널이 >= n 개의 요소를 수신해야 한하였는지 확인한다. |
channel.shouldReceiveAtMost(n) |
채널이 닫히기 전에 <= n 개의 요소를 수신해야 한하였는지 확인한다. |
channel.shouldBeClosed() |
채널이 닫혀 있는지 확인한다. |
channel.shouldBeOpen() |
채널이 열려 있음을 확인한다. |
channel.shouldBeEmpty() |
채널이 비어 있는지 확인한다. |
URIs | |
---|---|
uri.shouldHaveAuthority(fragment) |
URI에 지정된 권한이 있는지 확인한다. |
uri.shouldHaveFragment(fragment) |
URI에 지정된 조각이 있는지 확인한다. |
uri.shouldHaveHost(scheme) |
URI가 주어진 호스트 이름을 가지고 있는지 확인한다. |
uri.shouldHaveParameter(scheme) |
URI의 쿼리 문자열에 지정된 매개변수가 포함되어 있는지 확인한다. |
uri.shouldHavePath(scheme) |
URI에 지정된 경로가 있는지 확인한다. |
uri.shouldHavePort(scheme) |
URI에 지정된 포트가 있는지 확인한다. |
uri.shouldHaveQuery(fragment) |
URI에 주어진 쿼리가 있는지 확인한다. |
uri.shouldHaveScheme(scheme) |
URI에 지정된 구성표가 있는지 확인한다. |
Files | |
---|---|
file.shouldBeAbsolute() |
파일이 절대 경로를 나타내는지 확인한다. |
file.shouldBeADirectory() |
파일이 디렉터리를 나타내는지 확인한다. |
file.shouldBeAFile() |
파일이 파일을 나타내는지 확인한다. |
file.shouldBeCanonical() |
파일이 정식 형식인지 확인한다. |
file.shouldBeEmpty() |
파일이 존재하지만 비어 있는지 확인한다. |
file.shouldBeExecutable() |
현재 프로세스에서 파일을 실행할 수 있는지 확인한다. |
file.shouldBeHidden() |
파일이 디스크에 존재하고 숨겨진 파일인지 확인한다. |
file.shouldBeReadable() |
현재 프로세스에서 파일을 읽을 수 있는지 확인한다. |
file.shouldBeRelative() |
파일이 상대 경로를 나타내는지 확인한다. |
file.shouldBeSmaller(file) |
이 파일이 주어진 파일보다 작은지 확인한다. |
file.shouldBeLarger(file) |
이 파일이 주어진 파일보다 큰지 확인한다. |
file.shouldBeWriteable() |
현재 프로세스에서 파일을 쓸 수 있는지 확인한다. |
dir.shouldBeNonEmptyDirectory() |
파일이 디렉터리이고 비어 있지 않은지 확인한다. |
dir.shouldContainFile(name) |
파일이 디렉터리이고 해당 파일에 지정된 이름의 파일이 포함되어 있는지 확인한다. |
dir.shouldContainNFiles(name) |
파일이 디렉터리이고 정확히 n개의 파일이 포함되어 있는지 확인한다. |
file.shouldExist() |
파일이 디스크에 디렉터리 또는 파일로 존재하는지 확인한다. |
file.shouldHaveExtension(ext) |
파일이 주어진 확장자로 끝나는지 확인한다. |
file.shouldHaveFileSize(size) |
파일이 주어진 파일 크기를 가지고 있는지 확인한다. |
file.shouldHaveName(name) |
파일 이름이 주어진 이름과 일치하는지 확인한다. |
file.shouldHavePath(path) |
파일의 경로가 주어진 경로와 일치하는지 확인한다. |
file.shouldStartWithPath(prefix) |
파일의 경로가 주어진 접두사로 시작하는지 확인한다. |
dir.shouldContainFileDeep(name) |
파일이 디렉터리이고 해당 파일이나 하위 디렉터리에 주어진 이름의 파일이 포함되어 있는지 확인한다. |
dir.shouldContainFiles(name1, name2, ..., nameN) |
파일이 디렉터리이고 해당 파일에 해당 이름을 가진 모든 파일이 포함되어 있는지 확인한다. |
file.shouldBeSymbolicLink() |
파일이 심볼릭 링크인지 확인한다. |
file.shouldHaveParent(name) |
파일에 주어진 이름을 가진 상위 파일이 있는지 확인한다. |
Dates | |
---|---|
date.shouldHaveSameYearAs(otherDate) |
날짜가 주어진 날짜와 동일한 연도를 가지고 있는지 확인한다. |
date.shouldHaveSameMonthAs(otherDate) |
날짜가 주어진 날짜와 같은 달인지 확인한다. |
date.shouldHaveSameDayAs(otherDate) |
날짜가 주어진 날짜와 같은 달의 날짜인지 확인한다. |
date.shouldBeBefore(otherDate) |
날짜가 주어진 날짜 이전인지 확인한다. |
date.shouldBeAfter(otherDate) |
날짜가 주어진 날짜 이후인지 확인한다. |
date.shouldBeWithin(기간, otherDate) |
날짜가 주어진 날짜의 기간 내에 있는지 확인한다. |
date.shouldBeWithin(duration, otherDate) |
날짜가 주어진 날짜의 기간 내에 있는지 확인한다. |
date.shouldBetween(firstDate, secondDate) |
날짜가 firstdate와 seconddate 사이에 있는지 확인한다. |
date.shouldHaveYear(year) |
날짜의 연도가 올바른지 확인한다. |
date.shouldHaveMonth(month) |
날짜의 월이 올바른지 확인한다. |
date.shouldHaveDayOfYear(day) |
날짜에 정확한 날짜가 있는지 확인한다. |
date.shouldHaveDayOfMonth(day) |
날짜의 날짜가 올바른지 확인한다. |
date.shouldHaveDayOfWeek(day) |
날짜의 요일이 올바른지 확인한다. |
date.shouldHaveHour(hour) |
날짜의 시간이 올바른지 확인한다. |
date.shouldHaveMinute(minute) |
날짜의 분이 정확한지 확인한다. |
date.shouldHaveSecond(second) |
날짜의 초가 올바른지 확인한다. |
date.shouldHaveNano(nao) |
날짜의 나노초가 올바른지 확인한다. |
ZonedDateTime | |
---|---|
zonedDateTime.shouldBeToday() |
ZonedDateTime이 오늘과 같은 날인지 확인한다. |
zonedDateTime.shouldHaveSameInstantAs(other: ZonedDateTime) |
``ChronoZonedDateTime.isEqual```을 사용하여 ZonedDateTime이 다른 ZonedDateTime과 동일한지 확인한다. |
OffsetDateTime | |
---|---|
offsetDateTime.shouldBeToday() |
OffsetDateTime이 오늘과 같은 날인지 확인한다. |
offsetDateTime.shouldHaveSameInstantAs(other: OffsetDateTime) |
``OffsetDateTime.isEqual```을 사용하여 OffsetDateTime이 다른 OffsetDateTime과 동일한지 확인한다. |
Times | |
---|---|
time.shouldHaveSameHoursAs(otherTime) |
시간이 주어진 시간과 동일한 시간인지 확인한다. |
time.shouldHaveSameMinutesAs(otherTime) |
시간이 주어진 시간과 동일한 분을 가지고 있는지 확인한다. |
time.shouldHaveSameSecondsAs(otherTime) |
시간이 주어진 시간과 동일한 초를 가지고 있는지 확인한다. |
time.shouldHaveSameNanosAs(otherTime) |
시간이 주어진 시간과 동일한 나노를 갖는지 확인한다. |
time.shouldBeBefore(otherTime) |
시간이 주어진 시간 이전인지 확인한다. |
time.shouldBeAfter(otherTime) |
시간이 주어진 시간 이후인지 확인한다. |
time.shouldBeBetween(firstTime, secondTime) |
시간이 firstTime과 secondTime 사이에 있는지 확인한다. |
Instant | |
---|---|
instant.shouldBeAfter(anotherInstant) |
해당 인스턴스가 anotherInstant 이후에 발생한다고 확인한다. |
instant.shouldBeBefore(anotherInstant) |
해당 인스턴스가 anotherInstant 이전에 있는지 확인한다. |
instant.shouldBeBetween(fromInstant, toInstant) |
인스턴트가 fromInstant와 toInstant |
instant.shouldBeCloseTo(anotherInstant, duration) |
해당 순간이 기간별로 범위 내 anotherInstant에 가까운지 확인한다. |
Timestamp | |
---|---|
timestamp.shouldBeAfter(anotherTimestamp) |
타임스탬프가 anotherTimestamp 이후인지 확인한다. |
timestamp.shouldBeBefore(anotherTimestamp) |
타임스탬프가 anotherTimestamp |
timestamp.shouldBetween(fromTimestamp, toTimestamp) |
타임스탬프가 fromTimestamp와 toTimestamp |
Concurrent | |
---|---|
shouldCompleteWithin(timeout, unit, function) |
주어진 함수가 주어진 기간 내에 완료되는지 확인한다. |
shouldTimeout(timeout, unit, function) |
주어진 기능이 주어진 기간 내에 완료되지 않았는지 확인한다. |
shouldTimeout(duration, suspensableFunction) |
주어진 정지 가능 기능이 주어진 기간 내에 완료되지 않았는지 확인한다. |
Futures | |
---|---|
future.shouldBeCancelled() |
future가 취소되었는지 확인한다. |
future.shouldBeCompleted() |
future가 완성되었는지 확인한다. |
future.shouldBeCompletedExceptionally() |
예외를 제외하고 future가 완료되었는지 확인한다. |
future.shouldCompleteExceptionallyWith(throwable) |
주어진 예외를 통해 future가 완료되었는 확인한다. |
Threads | |
---|---|
thread.shouldBeBlocked() |
스레드가 현재 차단되어 있는지 확인한다. |
thread.shouldBeDaemon() |
스레드가 데몬 스레드인지 확인한다. |
thread.shouldBeAlive() |
스레드가 살아 있음을 확인한다. |
thread.shouldBeTerminating() |
스레드가 종료되었음을 확인한다. |
Throwables / Exceptions | |
---|---|
throwable.shouldHaveMessage(message) |
던질 수 있는 메시지가 주어진 메시지와 동일한지 확인한다. |
throwable.shouldHaveCause() |
던질 수 있는 물체에 원인이 있는지 확인한다. |
throwable.shouldHaveCause { block } |
Throwable에 원인이 있다고 확인하고 이를 블록에 매개변수로 전달한다. |
throwable.shouldHaveCauseInstanceOf<T>() |
던질 수 있는 물체에 원인이 있고 T 유형이거나 T의 하위 클래스인지 확인한다. |
throwable.shouldHaveCauseOfType<T>() |
던질 수 있는 물체에 원인이 있고 정확히 T 유형인지 확인한다. |
Result | |
---|---|
result.shouldBeSuccess() |
결과가 성공인지 확인한다. |
result.shouldBeSuccess(value) |
결과가 성공이고 값이 주어진 것과 동일한지 확인한다. |
result.shouldBeSuccess(block) |
결과가 성공이라고 가정한 후 결과 값으로 블록을 실행한다. |
result.shouldBeFailure() |
결과가 실패인 확인한다. |
result.shouldBeFailureOfType<Type : Throwable>() |
결과가 실패이고 예외 클래스가 주어진 것과 동일한지 확인한다. |
result.shouldBeFailure(block) |
결과가 실패라고 가정한 후 예외가 발생한 블록을 실행한다. |
Optional | |
---|---|
선택적.shouldBePresent() |
이 Optional이 존재하는지 확인한다. |
선택적.shouldBePresent { value -> .. } |
이 Optional이 존재하는지 확인하고 |
선택적.shouldBeEmpty() |
이 선택사항이 비어 있음을 확인한다. |
Reflection | |
---|---|
kclass.shouldHaveAnnotations() |
클래스에 주석이 있는지 확인한다. |
kclass.shouldHaveAnnotations(n) |
클래스에 정확히 N개의 주석이 있는지 확인한다. |
kclass.shouldBeAnnotatedWith<T>() |
클래스가 주어진 유형으로 주석을 달았는지 확인한다. |
kclass.shouldBeAnnotatedWith<T> { block } |
클래스가 주어진 유형으로 주석을 달았는지 확인한 다음 주석이 있는 블록을 실행한다. |
kclass.shouldHaveFunction(name) |
클래스에 주어진 이름의 함수가 있는지 확인한다. |
kclass.shouldHaveFunction(name) { block } |
클래스에 주어진 이름의 함수가 있다고 확인한 다음 |
kclass.shouldHaveMemberProperty(name) |
클래스에 주어진 이름의 멤버 속성이 있는지 확인한다. |
kclass.shouldHaveMemberProperty(name) { block } |
클래스에 주어진 이름의 멤버 속성이 있다고 확인한 다음 |
kclass.shouldBeSubtypeOf<T>() |
클래스가 T |
kclass.shouldBeSupertypeOf<T>() |
클래스가 T |
kclass.shouldBeData() |
클래스가 데이터 클래스인지 확인한다. |
kclass.shouldBeSealed() |
클래스가 봉인된 클래스인지 확인한다. |
kclass.shouldBeCompanion() |
클래스가 동반 객체임을 확인한다. |
kclass.shouldHavePrimaryConstructor() |
클래스에 기본 생성자가 있는지 확인한다. |
kclass.shouldHaveVisibility(visibility) |
클래스가 주어진 가시성을 갖고 있는지 확인한다. |
kfunction.shouldHaveAnnotations() |
함수에 주석이 있는지 확인한다. |
kfunction.shouldHaveAnnotations(n) |
함수에 정확히 N개의 주석이 있는지 확인한다. |
kfunction.shouldBeAnnotatedWith<T>() |
함수가 주어진 유형으로 주석을 달았는지 확인한다. |
kfunction.shouldBeAnnotatedWith<T> { block } |
함수가 주어진 유형으로 주석을 달았는지 확인한 다음 주석이 있는 블록을 실행한다 |
kfunction.shouldHaveReturnType<T>() |
함수가 주어진 유형을 반환한하였는지 확인한다. |
kfunction.shouldBeInline() |
함수가 인라인임을 확인한다. |
kfunction.shouldBeInfix() |
함수가 중위 |
kproperty.shouldBeOfType<T>() |
속성이 주어진 유형인지 확인한다. |
kproperty.shouldBeConst() |
속성이 const |
kproperty.shouldBeLateInit() |
속성이 late init var |
kcallable.shouldHaveVisibility(visibility) |
맴버가 지정된 가시성을 갖고 있는지 확인한다. |
kcallable.shouldBeFinal() |
맴버가 최종임을 확인한다. |
kcallable.shouldBeOpen() |
맴버가 열려 있음을 확인한다. |
kcallable.shouldBeAbstract() |
맴버가 Abstract인지 확인한다. |
kcallable.shouldBeSuspendable() |
맴버가 Suspendable인지 확인한다. |
kcallable.shouldAcceptParameters(parameters) |
매개변수를 사용하여 멤버를 호출할 수 있는지 확인한다(유형 확인) |
kcallable.shouldAcceptParameters(parameters) { block } |
매개변수를 사용하여 멤버를 호출할 수 있다고 확인한 다음(유형 확인) 주석이 있는 블록을 실행한다. |
kcallable.shouldHaveParametersWithName(parameters) |
멤버가 주어진 이름의 매개변수를 가지고 있는지 확인한다. |
kcallable.shouldHaveParametersWithName(parameters) { block } |
멤버가 주어진 이름의 매개변수를 가지고 있는지 확인한 다음, 주석이 있는 블록을 실행한다. |
ktype.shouldBeOfType<T>() |
KType이 T |
Statistic | |
---|---|
collection.shouldHaveMean(mean) |
컬렉션이 기본 정밀도 = 4인 특정 평균을 가지고 있는지 확인한다. |
collection.shouldHaveMean(mean, precision) |
컬렉션이 특정 정밀도로 특정 평균을 가지고 있는지 확인한다. |
collection.shouldHaveVariance(mean) |
컬렉션에 기본 정밀도 = 4 |
collection.shouldHaveVariance(mean, precision) |
컬렉션에 특정 정밀도의 특정 분산이 있는지 확인한다. |
collection.shouldHaveStandardDeviation(mean) |
컬렉션에 기본 정밀도 = 4인 특정 표준 편차가 있는지 확인한다. |
collection.shouldHaveStandardDeviation(mean, precision) |
컬렉션에 특정 정밀도의 특정 표준 편차가 있는지 확인한다. |
Regex | |
---|---|
regex.shouldBeRegex(anotherRegex) |
패턴과 regexOptions |
regex.shouldHavePattern(regexPattern) |
정규식이 regexPattern을 제공했는지 확인한다. |
regex.shouldHaveExactRegexOptions(regexOptions) |
정규식이 주어진 regexOptions |
regex.shouldIncludeRegexOption(regexOption) |
정규식에 주어진 regexOption이 포함되어 있는지 확인한다. |
regex.shouldIncludeRegexOptions(regexOptions) |
주어진 regexOptions가 정규식에 포함되어 있는지 확인한다. |
Selective Matchers | |
---|---|
any.shouldBeEqualToUsingFields(other: T, vararg 속성: KProperty<*>) |
주어진 속성만을 고려하여 any가 other와 동일한지 확인한다. [예](https://github.com/kotest/kotest/blob/1f4069d78faead65a0d7e8c7f1b689b417a655d2/kotest-assertions/kotest-assertions-core/src/jvmMain/kotlin/io/kotest/matchers/equality/reflection.kt#L20 참조) ) |
any.shouldBeEqualToIgnoringFields(other: T, vararg 속성: KProperty<*>) |
주어진 속성을 무시하고 any가 other와 동일한지 확인한다. [예제](https://github.com/kotest/kotest/blob/1f4069d78faead65a0d7e8c7f1b689b417a655d2/kotest-assertions/kotest-assertions-core/src/jvmMain/kotlin/io/kotest/matchers/equality/reflection.kt#L127 참조) ) |
Field by Field Comparison Matchers | |
---|---|
any.shouldBeEqualToComparingFields(other: T) |
equals 방법 대신 해당 필드(비공개 필드 무시)를 고려하여 모든 항목이 다른 항목과 동일한지 확인한다. |
any.shouldBeEqualToComparingFields(other: T,ignorePrivateFields: Boolean) |
equals 메서드 대신 해당 필드와 비공개 필드(ignorePrivateFields 가 false인 경우)를 고려하여 모든 항목이 다른 항목과 동일한지 확인한다. |
any.shouldBeEqualToComparingFieldsExcept(other: T,ignoreProperty: KProperty<*>, varargignoreProperties: KProperty<*>) |
|
any.shouldBeEqualToComparingFieldsExcept(other: T,ignorePrivateFields: Boolean,ignoreProperty: KProperty<*>, varargignoreProperties: KProperty<*>) |
ignorePrivateFields 가 false인 경우)를 포함한 모든 필드를 고려하지만 equals 메서드 대신 ignoreProperty 및 ignoreProperties 에 의해 언급된 필드를 무시하는 것을 고려하여 any가 other와 동일한지 확인한다.shouldBeEqualToComparingFields 및 shouldBeEqualToIgnoringFields 는 대안이다. |
Resource Matchers | |
---|---|
str shouldMatchResource "/path/to/test_resource.txt" |
문자열이 주어진 리소스(문자열)와 동일한지 확인한다. 이 매처는 줄 구분 기호의 차이를 무시한다. |
str shouldNotMatchResource "/path/to/test_resource.txt" |
문자열이 주어진 리소스(문자열)와 같지 않은지 확인한다. 이 매처는 줄 구분 기호의 차이를 무시한다. |
str.shouldMatchResource("/path/to/test_resource.txt", ::providedMatcher) |
providedMatcher 를 사용하여 문자열이 주어진 리소스(문자열)와 일치하는지 확인한다. 줄 구분 기호의 차이는 기본적으로 무시된다. |
str.shouldNotMatchResource("/path/to/test_resource.txt", ::providedMatcher) |
providedMatcher 를 사용하여 문자열 not이 주어진 리소스(문자열)와 일치하는지 확인한다. 줄 구분 기호의 차이는 기본적으로 무시된다. |
byteArray shouldMatchResource "/path/to/test_resource.bin" |
byteArray가 지정된 리소스와 동일한지 확인한다. |
byteArray shouldNotMatchResource "/path/to/test_resource.bin" |
byteArray가 지정된 리소스와 같지 않은지 확인한다. |
byteArray.shouldMatchResource("/path/to/test_resource.bin", ::providedMatcher) |
providedMatcher 를 사용하여 byteArray가 지정된 리소스와 일치하는지 확인한다. |
byteArray.shouldNotMatchResource("/path/to/test_resource.bin", ::providedMatcher) |
providedMatcher 를 사용하여 byteArray가 지정된 리소스와 일치하지 않음을 확인한다. |
참조
최종 수정 : 2024-04-23