我有一个Kotlin Android应用程序。有一个函数可以从后端加载合成并将其返回给回调:
getCompositons(callback: (Array<Composition>) -> Unit)
Run Code Online (Sandbox Code Playgroud)
我怎样才能使用嘲笑模拟回调。这样我就可以执行以下操作:
var callback = //mockito mock
getCompositons(callback)
verify(callback, timeout(10000)).apply()
Run Code Online (Sandbox Code Playgroud)
我读到lambda与Java类型的函数匹配,因此我认为apply可能是调用的方法。也许我可以模拟一个函数并使用它?但是Kotlin函数接口似乎只有一种返回类型,没有参数。java.util.Function说未解决的参考函数。
任何帮助表示赞赏。
这实际上与模拟其他任何类型没有什么不同:
val callback = mock<(Array<Composition>) -> Unit>()
getCompositons(callback)
verify(callback)(any()) // Or verify(callback).invoke(any()) to be explicit
Run Code Online (Sandbox Code Playgroud)
(以防您不了解它们,我在这里使用了模仿-kotlin绑定。)
| 归档时间: |
|
| 查看次数: |
1920 次 |
| 最近记录: |