Android-等待性和单元测试问题

时间:2020-01-22 19:12:04

标签: android testing junit

我有一个非常简单的测试。我正在等待要接收的交易列表并将其分配给列表视图。

@Test
fun testTransactionsLoad(){
    val listView: ListView? = fragment!!.findView(R.id.listView)

    assertNotNull(listView)

    await().atMost(20, TimeUnit.SECONDS).until(transactionsLoad(listView!!))

    assert(listView.adapter.count > 0)
}

但是由于某些原因,可等待性对于此可调用对象总是发送false:

private fun transactionsLoad(listView: ListView): Callable<Boolean> {
    return if (listView.adapter == null){
        Callable { false }
    } else {
        Callable { true }
    }
}

这不是Awaitility第一次返回错误的信息。在我的设备上,列表视图加载,证明它也应该有一个适配器。适配器在可调用项中仍然显示为空。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

使用kotlin时,您可以这样做:

await().atMost(20, TimeUnit.SECONDS).until{ listView.adapter != null }