0
我正在使用JUnit4
和Mockito
進行單元測試。
這裏是這樣的情況:
我有一個需要測試的函數,而在這個函數中它包含一個網絡請求,現在我想模擬網絡請求結果。
單元測試模擬網絡請求
void func(String param1, String param2){
//there would be some validations for the params
//...
//then network request, here I want to mock the result
String result = NetUtils.reqNetwork(param1, param2);
//work with the result
//...
}
這可能嗎?或者,也許我的測試方法是種不合理的。
NetUtils .reqNetwork看起來像一個靜態方法。你不能用Mockito模擬一個靜態方法。你必須在它上面使用PowerMock。 – kswaughs
@kswaughs感謝您的回覆,但有些博客指出PowerMock會更改字節碼以使其工作模擬靜態函數,那麼它是否安全? – xuanzhui
使用PowerMock是安全的。當你運行你的junit時,它將啓動它自己的JVM,並且這些被模擬的對象只被加載到這個JVM中。所以,不需要擔心這一點。 – kswaughs