2015-10-16 58 views
0

我只能使用生成器模式,即它不具有任何其他構造函數被初始化一個類來構建。現在我是單元測試這個類。單元測試類只能有一個建設者

我的問題是,由於製造商類是完全不同的類(我的生成器類是正在建設類外),是否信任該生成器返回對象一個好的做法呢?因爲也許有一些我在建築工中錯過了,因爲我沒有測試建造者班。

或者我應該首先測試生成器類,徹底與它再測試其他類。或者我應該在我的類中使用參數創建一個構造函數來進行測試。

我不知道什麼是做這種正確的做法。

+0

檢查了這一點[鏈接](https://www.kenneth-truyers.net/2013/07/15/flexible-and-expressive-unit-tests-with-the-builder-pattern/)。這是使用Builder模式來簡化測試用例。希望這會清除一些空氣。 – YoungHobbit

+0

是的,我正在做同樣的atm,但是我想知道的是如果我的建造者壞了怎麼辦?這就像我依賴建造者向我返回正確的結果。我覺得這不是一個好方法。 – Sneh

+0

不要測試類,測試功能單元。如果這個建造者與目標級別錯綜複雜,將它們視爲一個單元。 – chrylis

回答

0

理想情況下,你應該單元測試你所有的課程。然而在實踐中這可能意味着很多工作和投資回報。所以你必須使用你的判斷。

在這種情況下,我會說,如果你的生成器類是不平凡的話,我將單元測試,第一。一旦你確信它工作正常,即。所有的測試都通過了,然後我會單元測試它構建的類。

+0

所以你的意思是沒有硬性和快速的方法呢?或者只是處理我的情況。 – Sneh

+1

我發現沒有硬性和快速的工程方法。你必須運用你的判斷,權衡你的方法的利弊。我的答案的第一部分是一般的經驗法則。第二部分是我如何將它應用於你的情況(沒有看到你的任何代碼)。 – dave