在單位測試中進行嘲笑:Mockito vs. Easymock vs. Jmockit 了解語法和用法中的密鑰差異 >最佳平衡易用性和用於復雜場景的功能 oighito,easymock和jmockit都允許您創建模擬對象,以模擬單元測試期間真實對象的行為。但是,它們的方法和語法都有很大差異。
when()
>和thenReturn()
等方法直接在模擬對像上進行方法。 它支持各種類型的驗證,包括用verify()
驗證方法調用。 通常認為Mockito更容易學習和使用,尤其是對於初學者而言。 示例:List<String> mockList = Mockito.mock(List.class);
Mockito.when(mockList.get(0)).thenReturn("Hello");
String result = mockList.get(0); // result will be "Hello"
Mockito.verify(mockList).get(0); // Verifies that get(0) was called
發生的所有預期交互。這種方法可能比Mockito更詳細,更直觀,尤其是對於復雜的情況。 示例:expect()
easymock:andReturn()
使用記錄和復製樣式。您首先使用verify()
>和List<String> mockList = EasyMock.createMock(List.class);
EasyMock.expect(mockList.get(0)).andReturn("Hello");
EasyMock.replay(mockList);
String result = mockList.get(0); // result will be "Hello"
EasyMock.verify(mockList);
jmockit:@Mocked
@Test
public void testSomething(@Mocked List<String> mockList) {
mockList.add("Hello"); // This automatically mocks the add method
assertEquals(1, mockList.size());
}
之類的註釋來指定應模擬哪些對象。這可以導致更清潔的測試代碼,但學習曲線陡峭。示例:
以上是在單位測試中進行模擬:Mockito vs. Easymock vs.Jmockit的詳細內容。更多資訊請關注PHP中文網其他相關文章!