Kotlin MockK:从没有 `@MockkExtension` 的 util 类调用 `every { ... }`

问题描述

在我们的测试套件中,我们模拟了很多。但模拟内容大同小异。

every { fooClient.fooInfo("id01") } returns foo01
every { fooClient.fooInfoNoCache("id01") } returns foo01
...

所以我想把所有这些都放到一个 util 方法中:

Mocks.Foo.mockFoo(fooClient,foo1)

这将隐藏所有样板。

结果 - 不,那行不通,因为(我认为)every { ... } 使用对 this 的引用,@MockkExtensionfooClient.fooInfo(...) 进行了一些运行时调整。调用 null 会给我一个relax-mocked 对象(一切都是 every {})。

问题:在 MockK 中有什么方法可以实现这种意图吗?我能否以某种方式将正确的上下文传递给 answers 以便它拥有所需的一切?

我知道我可以捕获参数并使用 inline 并至少减少对相同方法调用

我也可以使用 while IFS= read -r line; do urldecode "$line" done < "$1" 函数,但这只会将问题委托给那个级别。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)