3
我有一個類,像這樣:如何「攔截」測試方法調用?
class A {
public static void makeCall() {
URL url = "www.google.com";
InputStream result = url.openStream();
//Do more stuff
}
}
我想寫一個單元測試它。我想要發生的事情是「攔截」openStream()
的呼叫,這樣我就可以運行靜態方法makeCall()
,並返回某種硬編碼的JSON,而不是實際進行呼叫。我一直無法弄清楚如何嘲笑它,或者甚至有可能。
我尋找相同的行爲角的$httpBackend
,任何意見或建議?
您應該從您實際嘗試測試的邏輯(認爲依賴注入)中分離出HTTP代碼。 – SLaks
所以你想單獨調用'makeHTTPCall(URL url)',然後只是模擬該方法返回JSON?這肯定能起作用 –
如果你確實必須嘲笑它,那麼使用JMockit模擬庫(聲明'@Mocked URL url'模擬字段然後在'openStream()'中記錄期望的期望)是微不足道的。 –