使用 Mockito 模拟 ExecutorCompletionService 中的非确定性响应
当任务返回非确定性值时测试 ExecutorCompletionService 的行为可能具有挑战性。不过,Mockito 提供了一种解决方案来模拟此类场景。
在这种情况下,您可以使用 Mockito 的 thenReturn 方法为存根方法指定多个返回值。这允许您控制返回值的顺序,确保无论执行顺序如何,结果都保持一致。
要实现此目的,只需指定存根方法调用,后跟要返回的值列表为了。例如:
when(completionService.take().get()).thenReturn(value1, value2, value3);
在此示例中,第一次调用 take() 时将返回 value1,第二次调用时将返回 value2,依此类推。返回所有值后,将重复返回 value3 以供后续调用。
通过利用此技术,您可以测试代码在处理不确定性任务结果时的行为,确保无论哪种情况都能实现所需的结果任务完成的顺序。
以上是如何使用 Mockito 模拟 ExecutorCompletionService 中的不确定响应?的详细内容。更多信息请关注PHP中文网其他相关文章!