这个Java代码的Kotlin等价物是什么
doAnswer(new Answer() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
Design design = new Design();
GetDesign.Listener callback = (GetDesign.Listener) invocation.getArguments()[0];
callback.onSuccess(design);
return null;
}
}).when(someRepository).getDesign(any(GetDesign.Listener.class));
[UPDATE]在尝试了几个选项之后,我最终使用mockito-kotlin使其工作。我认为这是实现doAnswer
的最舒适的方式。语法几乎保持不变:
doAnswer {
callback = it.arguments[0] as GetDesign.Listener
callback.onSuccess(Design())
null
}.whenever(someRepository).execute(any(GetDesign.Listener::class.java))
完整的代码和构建版本。gradle配置可以在here中找到
3条答案
按热度按时间44u64gxh1#
mrfwxfqh2#
我是Full Mocking对象的爱好者,我不想加载任何配置或任何其他启动依赖注入。
如果我必须模拟一个JavaMailSender函数,我将这样做。我将使用
theAnswer
返回值。Kotlin(仅测试JavaMailSender)
}
Kotlin(使用JavaMailSender的自定义类)
您可能会使用自己的自定义类来发送邮件,所以我在这里就这样做了。
}
希望这对某些人有帮助。如果你需要一个Java版本,请在评论中告诉我
vs3odd8k3#
现在你也可以这样做(假设类型是
Repository
):