【发布时间】:2019-04-17 19:31:56
【问题描述】:
我有一个 kotlin Android 应用。有一个函数可以从后端加载组合并将它们返回给回调:
getCompositons(callback: (Array<Composition>) -> Unit)
如何使用 mockito 模拟回调。这样我就可以做这样的事情:
var callback = //mockito mock
getCompositons(callback)
verify(callback, timeout(10000)).apply()
我读到 lambda 与 java 类型函数匹配,因此我假设 apply 可能是调用的方法。也许我可以模拟一个函数并使用它?但是 Kotlin 函数接口似乎只有一种返回类型,没有参数。 java.util.Function 表示未解析的引用函数。
任何帮助表示赞赏。
【问题讨论】:
-
你为什么要费心模拟它而不是编写一个自己验证的函数?
-
Mockito 负责等待结果,因为它是异步的。如果我必须自己这样做,我将不得不使用一些未来的对象或者等待并通知。