在物件導向程式設計中,像Mockito 這樣的模擬框架用於創建一個模擬對象,出於測試目的模擬真實物件的行為。測試中的一個常見場景是需要讓模擬方法傳回傳遞給它的相同參數。
對於Mockito 1.9.5 及更高版本與Java 8 或更高版本結合使用,您可以利用lambda 表達式來實現此行為:
when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);
這裡, i 代表一個實例IncationOnMock 和getArguments()[0] 檢索傳遞給模擬方法的第一個參數。
對於舊版Mockito 版本中,您可以使用自訂Mockito Answer 實作:
<code class="java">MyInterface mock = mock(MyInterface.class); 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 檢索傳遞的參數並傳回它,允許模擬方法回顯收到的輸入。
以上是如何模擬方法以傳回 Java 中收到的參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!