我在 kotlin 中使用mockk进行测试。但我似乎无法覆盖间谍对象中的私有属性。
我有这个对象
private val driverMapSnapshotMap: MutableMap<Int, SnapshotImage> = mutableMapOf()
Run Code Online (Sandbox Code Playgroud)
在我监视使用的课程中
viewModel = spyk(DriverListViewModel(), recordPrivateCalls = true)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试用模拟值填充它时,我收到错误
every {
viewModel getProperty "driverMapSnapshotMap"
} returns(mapOf(1 to mockkClass(SnapshotImage::class)))
Run Code Online (Sandbox Code Playgroud)
我得到的错误
io.mockk.MockKException: Missing calls inside every { ... } block.
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
模拟私有属性几乎是不可能的,因为它们没有附加 getter 方法。这是 Kotlin 的优化和解决方案的重大变化。
这是针对具有相同问题的问题打开的问题:
https://github.com/mockk/mockk/issues/263
| 归档时间: |
|
| 查看次数: |
9167 次 |
| 最近记录: |