使用Mockito 和多個方法呼叫測試不確定回應
在存根方法為具有相同參數的多次呼叫返回不同物件的測試場景中,無論退貨訂單為何,都必須確保一致的結果。為了實現這一點,Mockito 提供了一個優雅的解決方案。
例如,考慮以下測試場景,其中 ExecutorCompletionService 用於分組和處理任務。目標是驗證結果是否保持不變,無論任務完成的順序為何。
<code class="java">// ExecutorCompletionService completionService = new ExecutorCompletionService(service); // for (Callable<T> t : ts) completionService.submit(request);</code>
要測試完成服務的不確定響應,可以利用Mockito 的thenReturn 方法,如下所示:
<code class="java">when(completionService.take().get()).thenReturn(value1, value2, value3);</code>
thenReturn 方法允許指定多個返回值作為參數,確保存根方法按指定順序傳回所需的物件。第一個值將在第一次呼叫時返回,然後是第二個,依此類推。一旦所有值都用盡,重複傳回最後一個值。
這種方法使開發人員能夠測試各種場景,其中方法呼叫的順序或傳回物件的順序不會影響預期結果。它簡化了測試並確保程式碼即使在不確定的情況下也是健壯可靠的。
以上是如何使用 Mockito 和多個方法呼叫測試不確定響應?的詳細內容。更多資訊請關注PHP中文網其他相關文章!