使用Mockito 模擬Void 方法
Mockito 中的模擬void 方法可以使用doThrow()、doAnswer()、doNothing 中的方法來模擬實作() 和doReturn() 系列。這些方法可讓您指定具有 void 傳回類型的模擬方法的行為。
範例:
// Mock a void method that throws an exception Mockito.doThrow(new Exception()).when(instance).methodName(); // Mock a void method that performs some action Mockito.doAnswer(new Answer<Void>() { public Void answer(InvocationOnMock invocation) { Object[] args = invocation.getArguments(); System.out.println("called with arguments: " + Arrays.toString(args)); return null; } }).when(instance).methodName();
在您的特定範例中,您可以模擬World 類別中的 setState()方法如下:
// Mock the World class World mockWorld = mock(World.class); // Mock the setState method to print the arguments passed to it doAnswer(new Answer<Void>() { public Void answer(InvocationOnMock invocation) { Object[] args = invocation.getArguments(); System.out.println("called with arguments: " + Arrays.toString(args)); return null; } }).when(mockWorld).setState(anyString());
現在,當你在裡面調用mockWorld.setState()時您的測試中,將執行所提供的答案,從而允許您驗證是否將正確的參數傳遞給了該方法。
以上是如何在 Mockito 中有效模擬 Void 方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!