Я читал LiveDatatestUtil.kt, предоставленный как часть примеров компонентов архитектуры Android, и я пытался понять, как протестировать События с ним внутри Kotest, насколько это возможно. В основном потому, что (прямо сейчас) Kotest не предоставляет возможности тестирования LiveData. Есть ли идиоматический способ тестирования событий (на основе LiveData), основанный на опубликованной утилите?

1
IainCunningham 5 Дек 2020 в 01:03

1 ответ

Лучший ответ

Мое решение - добавить в утилиту следующее:

@VisibleForTesting(otherwise = VisibleForTesting.NONE)
infix fun <T, U : T> LiveData<Event<T>>.shouldBeTriggered(
    expected: U
) {
    val value = this.getOrAwaitValue()
    value.getContentIfNotHandled() shouldBe expected
}

Затем это позволяет использовать event shouldBeTriggered withValue в качестве теста.

1
Son Truong 5 Дек 2020 в 07:20