自訂重複方法呼叫的Mockito 回傳值
在測試涉及非確定性反應的場景時,模擬回傳的方法可能會很有用後續呼叫時的不同值。 Mockito 是一個流行的 Java 模擬框架,為這個難題提供了一個優雅的解決方案。
考慮提供的範例程式碼,其中 ExecutorCompletionService 用於將任務分組並收集其結果。為了有效地測試邏輯,無論任務執行順序為何,我們需要確保方法completionService.take()在不同時間傳回不同的值。
Mockito 提供了 thenReturn 方法來控制存根方法的回傳值。值得注意的是,您可以在 thenReturn 的括號內指定多個值。每次呼叫方法時,Mockito 都會以指定的順序傳回值。例如:
<code class="java">when(completionService.take()).thenReturn(value1, value2, value3);</code>
在此範例中,第一次呼叫completionService.take()將傳回value1,第二次呼叫將傳回value2,第三次呼叫將傳回value3。一旦傳回所有指定的值,Mockito 將繼續傳回最後一個值以供後續呼叫。
透過利用此技術,您可以有效地模擬非確定性回應,並確保您的測試邏輯保持穩健,無論任務完成執行的順序。
以上是如何使用 Mockito 模擬重複方法呼叫的不同返回值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!