首页  >  文章  >  Java  >  如何使用 Mockito 测试非确定性响应?

如何使用 Mockito 测试非确定性响应?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-28 04:47:30880浏览

 How Can I Test Nondeterministic Responses with Mockito?

使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn