在物件導向程式設計中,像Mockito 這樣的類比框架用於建立模擬對象用於測試目的的真實物件的行為。測試中的一個常見場景是需要讓模擬方法傳回傳遞給它的相同參數。
對於Mockito 1.9.5 及更高版本與Java 8 或更高版本結合使用,您可以利用lambda表達式來實現此目的行為:
when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);
這裡,i代表InitationOnMock的一個實例, getArguments()[0] 檢索傳遞給模擬方法的第一個參數。
對於舊版的Mockito,您可以使用自訂Mockito Answer 實作:
MyInterface mock = mock(MyInterface.class);
when(mock.myFunction(anyString())).thenAnswer(new Answer() {
@Override
public String answer(InvocationOnMock invocation) throws Throwable {
Object[] args = invocation.getArguments();
return (String) args[0];
}
});
此自訂答案會擷取傳遞的參數並傳回它,允許模擬方法回顯收到的輸入。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3