unit-testing - Mockito:模拟一个可调用的参数
问题描述
要测试的 Kotlin 函数:
suspend fun <T: Any> handleSomething(call: suspend () -> Result<T>) {
if (call.invoke() == "Something") {
...
}
else {
...
}
}
我想在这里模拟通话。通常我会嘲笑:
val call = Mockito.mock(SomeClass::class.java)
但我不知道参数是这样的功能
解决方案
原始答案:https ://stackoverflow.com/a/53306974/11377112
这是模拟 lambda 函数的方式:
val call = Mockito.mock<suspend () -> Result<T>>()
handleSomething(call)
verify(call)()
// Or verify(call).invoke(any()) to be explicit
推荐阅读
- r - R Markdown(html)中的背景颜色与基于多个条件的KableExtra(NA问题)(R)
- php - 动态数据库数据的 SEO 链接
- elasticsearch - 在elasticsearch中匹配两个字符串数组
- amazon-web-services - AWS 放大 cli 的初始化问题
- nativescript-vue - 从库和刷新库中删除媒体
- sql - 在更新触发器之前,为每个更新更新列
- mongodb - MongoDB:使用字段值作为字段名
- repast-simphony - Repast:在批处理运行期间抑制错误
- r - 如何将 facet_wrap(~list) 与列表一起使用?
- python - 如何计算匹配的特征数量?