我有一个类(类a(,为了组织问题,我在另一个类的伴随对象(类B(中定义了一个扩展函数(a.extension(((。
在我的测试中,我需要:
- 使用一个真正的a类实例
- 嘲笑A.extension((
- 使用类B的模拟实例
使用MockK库,我无法成功模拟该扩展函数。我试过:
mockkObject(B.Companion) {
every { any<A>().extension() } returns whatIneed
}
结果:尝试运行扩展函数的未锁定版本。
mockkStatic(path.to.B.CompanionKt)
every { any<A>().extension() } returns whatIneed
结果:找不到配套对象。
mockkStatic(A::extension) {
every { any<A>().extension() } returns whatIneed
}
结果:编译错误->'extension'同时是成员和扩展。不允许引用此类元素。
我是不是错过了一些关于如何嘲笑这件事的东西?我是不是在代码结构方面做错了什么,阻止了这种嘲笑的可能?
感谢您的帮助。
这似乎是一件不可能的事情。我已经分别尝试过了,但没有效果。