我想模拟以下功能:
private fun <T> updateItemInDb(id: Long, column: String, data: T)
我的类通过以下方式调用它:
updateItemInDb(it, DB_POS, i)
, 其中it
是 Long
, DB_POS
是String
和 i
是一个 Int
.
我希望函数不做任何事情就直接运行。我在单元测试中尝试了以下内容:
1) every { adapter["updateItemInDb"](any<Long>(), any<String>(), any<Int>()) } just Runs
这给了我一个类型不匹配错误:required MockKStubScope<Unit>, found MockKStubScope<Any?>
2) every { adapter["updateItemInDb"](any<Long>(), any<String>(), any<Int>()) } answers { }
这在运行时失败了 io.mockk.MockKException: can't find function updateItemInDb(-1078155520644112829, -d008fa83c4f49c0, 843241211) for dynamic call
最佳答案
现在是的。自 1.7.16 起修复了通用私有(private)函数
关于unit-testing - 我可以在 Kotlin 中使用 MockK 模拟通用(模板)私有(private)方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50000194/