使用 Mockito 测试非确定性响应
测试与非确定性服务交互的代码时,很难确保结果保持不变方法的返回顺序。例如,考虑测试以下代码,它使用 ExecutorCompletionService 来分组和处理任务:
<code class="java">ExecutorCompletionService<T> completionService = new ExecutorCompletionService<>(service); for (Callable<T> t : ts) completionService.submit(request); for (int i = 0; i < calls.size(); i ++) { try { T t = completionService.take().get(); // do some stuff that I want to test } catch (...) { } }</code>
为了解决这一挑战,Mockito 提供了一种方法来配置方法的后续调用以返回不同的对象。通过使用 thenReturn 方法,您可以指定按顺序返回的对象:
<code class="java">when(method-call).thenReturn(value1, value2, value3);</code>
每个值将按顺序返回,一旦所有其他值都用完,就会重复使用最后一个值。这使您可以测试不同的场景并确保结果保持一致,无论退货顺序如何。
以上是如何使用 Mockito 测试非确定性响应?的详细内容。更多信息请关注PHP中文网其他相关文章!