我想使用doReturn(sth).when(underTest).someFunc()而不是when(underTest.someFunc()).thenReturn(sth) 。 (不想实际里面执行任何命令someFunc() - https://stackoverflow.com/a/ ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我有一个 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 表示未解析的引用函数。
任何帮助表示赞赏。
这与嘲笑任何其他类型确实没有什么不同:
val callback = mock<(Array<Composition>) -> Unit>()
getCompositons(callback)
verify(callback)(any()) // Or verify(callback).invoke(any()) to be explicit
(如果您不知道它们,我在这里使用的是mockito-kotlin 绑定。)
你可以这样做:
val function: Array<Composition>) -> Unit = {}
val callback = mock(function::class.java)
getCompositons(callback)
verify(callback)(any()) // or for example verifyNoInteractions(callback)
除了标准的 mockito 之外不需要额外的库
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.