kotlin-test: Как проверить определенный тип, например: "это y экземпляр X" - PullRequest
2 голосов
/ 29 апреля 2019

Как проверить, является ли val / var ожидаемым типом?

Есть ли что-то, чего мне не хватает в Kotlin Test, например:

value shouldBe instanceOf<ExpectedType>()

Вот как я это реализовал:

inline fun <reified T> instanceOf(): Matcher<Any> {
    return object : Matcher<Any> {
        override fun test(value: Any) =
                Result(value is T, "Expected an instance of type: ${T::class} \n Got: ${value::class}", "")

    }
}

1 Ответ

3 голосов
/ 29 апреля 2019

В KotlinTest многое зависит от правильного расстояния :) Вы можете использовать should, чтобы получить доступ к различным встроенным сопоставителям.

import io.kotlintest.matchers.beInstanceOf
import io.kotlintest.should

value should beInstanceOf<Type>()

Существует также альтернативный синтаксис:

value.shouldBeInstanceOf<Type>()

См. здесь для получения дополнительной информации.

...