簡體   English   中英

如何“攔截”方法調用測試?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM