【发布时间】:2017-08-23 15:44:32
【问题描述】:
简单一点,我们的系统有两个部分。 “我们的”部分,它又使用另一个团队(在同一代码库中)实现的较低级别的部分。我们有一个相当复杂的功能测试设置,我们将入口点包装到间谍对象中的较低级别。在正面测试中,我们使用该级别的真实实现,但我们模拟应该失败并出现一些预定义错误的调用。
现在我正在尝试添加对更复杂场景的支持,我想为底层级别的调用添加人工延迟(显然是在假时钟上)。为此,我想定义一个模拟,它将 (1) 调用真正的实现 (2) 获取返回的结果 Future 对象并将其与将相应地注入延迟的自定义函数结合起来。所以理想情况下,我想要这样的东西:
doAnswer(invocationOnMock ->
{
result = call real method on mySpy;
return Futures.combile(result, myFunction);
}).when(mySpy).myMethod();
我怎样才能实现它?
【问题讨论】: