Companion对象中的Mock扩展函数



我有一个类(类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'同时是成员和扩展。不允许引用此类元素。

我是不是错过了一些关于如何嘲笑这件事的东西?我是不是在代码结构方面做错了什么,阻止了这种嘲笑的可能?

感谢您的帮助。

这似乎是一件不可能的事情。我已经分别尝试过了,但没有效果。

相关内容

  • 没有找到相关文章

最新更新