所以我有,看起來像一個輔助方法如下:我需要測試助手/設置方法嗎?
private D GetInstanceOfD(string param1, int param2)
{
A a = new A();
B a = new B();
C c = new C(a,b, param1);
return new D(c, param2);
}
這只是一個方便的輔助方法,我可以叫搶一個特定的對象,我需要而不是記住我需要哪些依賴掛鉤以獲取我需要的對象。
我的第一個問題是:應該像這些方法進行測試?我能想到要測試這些類型的方法的唯一原因是確保使用正確的依賴關係並正確設置。
如果第一個問題的答案是肯定的,我的第二個問題是:如何?我目前正在使用NUnit和RhinoMocks,並試圖弄清楚這種方法如何被重構爲可測試的(好吧,是否應該測試這樣的東西!);顯然,依賴注入在這裏不起作用,因爲這個方法實際上創建了依賴關係!
或正在使用這種方法不好的做法,我應該做類似以下內容:
D d = new (new C(new A(), new B(), "string"), 1024);
一般來說,我的私有方法是由於重構使代碼保持DRY或方法很小而產生的。在這種情況下,代碼實際上可能已經在重構之前通過現有測試進行了測試。在這種情況下,我通常不會直接爲此方法編寫測試,而是依賴現有測試和任何新的公共方法測試。情況並非總是如此,我對使用反射/訪問器測試的私有方法進行了一些測試,但通常情況下,我只測試公共接口,因此我的測試不會不必要地耦合到類的內部。 – tvanfosson 2009-06-17 03:10:50