首頁  >  文章  >  Java  >  如何使用 Mockito 模擬重複方法呼叫的不同返回值?

如何使用 Mockito 模擬重複方法呼叫的不同返回值?

Patricia Arquette
Patricia Arquette原創
2024-10-27 22:45:30219瀏覽

How can I simulate different return values for repeated method calls with Mockito?

自訂重複方法呼叫的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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn