簡體   English   中英

與測試的類別不同的​​模擬方法

[英]Mocking methods from different class than tested one

我為其中一種方法編寫單元測試時遇到問題。 它從不同的類中調用方法,更糟糕的是,它會根據服務器連接進行一些處理,因此我需要以某種方式進行模擬,但是找不到解決方法。 我還想指出,經過測試的方法不會將這個不同的類對象作為參數,而是在自身內部實例化了它,因此它看起來像這樣:

public class Class1 {
    public MyEnum method1(String myString){
        Class2 class2 = new Class2();
        return class2.method2(myString);
    }
}
public class Class2 {
    public MyEnum method2(String myString){
       //returns some value after communication with a server
    }
}

所以基本上我需要模擬method2返回值,但是因為它的類是在method1內部實例化的,所以我看不到這樣做的方法。 沒有實際的服務器連接,是否有任何測試方法?

根據經驗,您的單元測試應該只測試一個類,其他所有內容都應該被模擬。
作為良好設計的規則,所有依賴項都應該是可注入的,即,不應在Class1內部實例化Class2(並且絕對不要在此類的方法內部實例化,因為每次調用該方法都會創建一個新實例)。
如果以上任何規則被違反,則應考慮重寫代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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