Mockito 是 Java 模擬框架,允許建立模擬物件用於測試目的。模擬方法有助於獨立於其依賴項來測試程式碼。在這種情況下,我們想要模擬一個方法以傳回在方法呼叫期間傳遞給它的值。
解決方案:
自 Mockito 版本 1.9.5 起在 Java 8 中,可以利用 lambda 表達式來實現所需的功能。具體方法如下:
<code class="java">when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);</code>
在此 lambda 表達式中,i 表示 InvocableOnMock 的實例,i.getArguments()[0] 檢索傳遞給模擬方法的第一個參數。
舊版的替代解決方案:
對於舊版的 Mockito,可以實現答案以達到相同的結果。以下是範例:
<code class="java">when(mock.myFunction(anyString())).thenAnswer(new Answer<String>() { @Override public String answer(InvocationOnMock invocation) throws Throwable { Object[] args = invocation.getArguments(); return (String) args[0]; } });</code>
在此 Answer 實作中,從 InvocableOnMock 實例中擷取參數數組,並傳回第一個參數(字串)。
使用這些方法,您可以在 Mockito 中配置模擬方法以根據傳遞給它們的參數返回值,從而允許更靈活和更現實的測試場景。
以上是如何在 Mockito 中將參數傳回模擬方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!