0
A
回答
1
你給的鏈接方法等效於以下內容:
InetAddress localHost = InetAddress.getLocalhost();
String hostName = localHost.getHostName();
因此,我們需要分成兩個嘲笑這一點。
@Test
public void myTest(@Mocked InetAddress mockedLocalHost) throws Exception {
new Expectations() {{
mockedLocalHost.getHostName();
result = "mockedHostName";
}};
// More to the test
}
但是,我們如何讓mockedLocalHost
是當我們調用InetAddress.getLocalhost()
時返回的實例:
第二部分是容易被剛剛嘲笑一個InetAddress
並把它在一個Expectations
塊像這樣做呢?用partial mocking,可以用於任何靜態方法。對於語法是包括含有靜態方法爲new Expecations()
參數類,然後嘲笑它,因爲我們其他任何方法調用:
@Test
public void myTest(@Mocked InetAddress mockedLocalHost) throws Exception {
new Expectations(InetAddress.class) {{
InetAddress.getLocalHost();
result = mockedLocalHost;
mockedLocalHost.getHostName();
result = "mockedHostName";
}};
// More to the test
}
這將導致嘲諷InetAddress.getLocalHost().getHostName()
爲你的計劃。
相關問題
- 1. 如何使用JMockit模擬非靜態方法1.31
- 2. 靜態方法如何在JMockit,PowerMocks等任何Mocking Framework中被模擬?
- 3. 來自FacesContext的Jmockit模擬addMessage方法
- 4. 如何使用junit和easymock來模擬靜態方法
- 5. 模擬PHPUnit中的對象來模擬靜態方法調用?
- 6. 在PowerMock中不使用replayAll()來模擬靜態方法
- 7. Java如何模擬java中的對象和靜態方法?
- 8. 使用JMockit,我如何模擬一個靜態工廠方法來返回一個假?
- 9. 替換非靜態方法java模擬
- 10. 模擬靜態默認接口方法
- 11. 在JUnit測試中使用JMockit多次嘲弄靜態方法
- 12. 模擬靜態方法
- 13. 如何在Java中使用靜態方法或任何靜態方法來打印返回方法的結果
- 14. 如何使用jMockit模擬原生方法
- 15. 無法用powermockito模擬靜態方法?
- 16. 如何在私有靜態方法中模擬第三方類?
- 17. 如何在Java中使用JMock模擬靜態變量
- 18. 使用PowerMock模擬來自多個類的靜態方法
- 19. 使用mockito模擬基類中的方法或模擬靜態方法
- 20. 如何在JMockit模擬實例中保留方法註釋
- 21. JMockit - 期望和靜態方法
- 22. 使用JMockit,我如何模擬特定輸入參數值的接口方法?
- 23. 如何使Java通用方法靜態?
- 24. 使用JMockit抽象類中的非公共靜態方法?
- 25. 如何在編寫靜態方法的junit時從靜態方法中模擬實例方法調用?
- 26. 如何使用PowerMockito模擬私有靜態方法?
- 27. 如何使用powermock模擬靜態方法?
- 28. 模擬靜態使用時的靜態方法從其他方法
- 29. 如何用easymock模擬類中的靜態方法?
- 30. 如何在最終類中模擬靜態方法
您希望通過測試標準庫來完成什麼? – Makoto
說,基於主機名我設置了一些屬性並採取了一些行動。我如何模擬上面的代碼? – surya