根据
documentation
对于模块范围的扩展功能,您需要
staticMock
为扩展函数创建的“隐藏”类。
下面是一个示例(假设文件名为
com/sample/extmockingtest/SampleTest.kt
):
fun <T> Iterable<T>.foo(): String = "do some stuff"
class ExtensionFunctionTest {
@Test
fun mockExtensionFunction() {
val itMock = classMockk(Iterable::class);
staticMockk("com.sample.extmockingtest.SampleTestKt").use {
every {
itMock.foo()
} returns "do other stuff"
assertEquals("do other stuff", itMock.foo())
verify {
itMock.foo()
}
}
}
}