使用 Mockito 模擬 Void 方法
如何使用 Mockito 框架模擬具有 void 返回類型的方法?這個特殊問題經常出現在物件方法不回傳值而是執行操作的場景中。
克服挑戰
Mockito API 提供了一系列處理這種情況的選項,包括 doThrow()、doAnswer()、doNothing()和doReturn().
範例實作
考慮以下範例場景:
public class World { private String state; // Setter for state public void setState(String s) { this.state = s; } } public class WorldTest { @Test public void testingWorld() { World mockWorld = mock(World.class); // Mock the setState method using doAnswer doAnswer(new Answer<Void>() { @Override public Void answer(InvocationOnMock invocation) { Object[] args = invocation.getArguments(); System.out.println("Called with arguments: " + Arrays.toString(args)); return null; } }).when(mockWorld).setState(anyString()); // Call the mock method and observe the output mockWorld.setState("Mocked"); } }
透過使用doAnswer 方法,我們可以為模擬setStateState 指定自訂行為方法。在上面的範例中,我們列印傳遞給方法的參數,提供其呼叫的可見性。
以上是如何在 Mockito 中模擬 Void 方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!