0

我有一个类(A 类),为了组织问题,我在另一个类(B 类)的伴随对象中定义了一个扩展函数(A.extension())。

在我的测试中,我需要:

  • 要使用真正的 A 类实例。
  • 模拟 A.extension()。
  • 使用 B 类的模拟实例。

使用 MockK-library 我无法成功模拟该扩展功能。我试过了:

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

我是否遗漏了一些关于如何模拟这个的东西?我在阻止这种模拟的代码结构方面做错了吗?

任何帮助表示赞赏。

4

1 回答 1

-1

这似乎是一件不可能的事情。我已经多次尝试过,但它不起作用。

于 2022-01-26T14:11:27.003 回答