1

我一直在阅读作为 Android 架构组件示例的一部分提供的 LiveDatatestUtil.kt,并且我一直在尝试尽可能地在 Kotest 中使用它来测试事件。主要是因为(现在)Kotest 不提供 LiveData 测试功能。是否有一种惯用的方法来测试事件(基于 LiveData),即基于已发布的实用程序?

4

1 回答 1

1

我的解决方案是将以下内容添加到 util:

@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用作测试。

于 2020-12-04T22:03:51.307 回答