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