![](/img/trans.png)
[英]How can I intercept a method call to a library class in Java or Android?
[英]How can I “intercept” a method call for a test?
我有一個這樣的課:
class A {
public static void makeCall() {
URL url = "www.google.com";
InputStream result = url.openStream();
//Do more stuff
}
}
我想為它編寫一個單元測試。 我想要發生的是“攔截”對openStream()
的調用,以便我可以運行靜態方法makeCall()
並返回某種硬編碼的JSON,而不是實際進行調用。 我無法弄清楚如何模擬它,或者甚至可能。
我正在尋找與Angular的$httpBackend
相同的行為,任何想法或建議?
您不應該需要模擬方法成員變量。 為了更好的設計,使url成為方法中的參數。
public static void makeCall(URL url){
然后在你的測試傳遞模擬。
這也允許將來更靈活和可能的代碼重用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.