我試圖在一個吐出屬於第三方組件的對象的類上開始使用TDD。但是我變得有點混亂的,顯然:具有TDD的第三方組件
一)單元測試對象應單獨測試
二)第三方組件應該被封裝成一個適配器
做這些規則適用於編寫返回屬於第三方組件的對象實例的代碼測試?作爲一個例子,這裏是迄今爲止測試:
// Arrange
string foodXml = "<food><ingredient>Cabbages</ingredient>" +
"<ingredient>Bananas</ingredient></food>";
IFoodMixer mixer = new FoodMixer();
// Act
// Smoothie is the third-party component object
Smoothie urgh = mixer.Mix(foodXml);
// Assert
Assert.AreEquals("Cabbages", urgh.Ingredients[0].Name);
Assert.AreEquals("Bananas", urgh.Ingredients[1].Name);
道歉,如果這個問題似乎有點基本(或者,如果上面的概念似乎一點點傻了!) - 我只是努力理解如何在兩個以上規則可以適用在這個情況下。
在此先感謝您提供的任何建議!
感謝您的快速和詳細的反應!問題是Smoothie對象非常複雜,FoodMixer可能會使用其大部分功能(其NPOI btw用於生成Excel文件)。它是否仍然被包裹?感覺它會涉及重寫大部分內容。 – 2010-11-27 15:02:42
在這種情況下,我會制定你想要達到的目標,添加一個包裝來完成這些事情,然後將NPOI放入其中。它不一定是一對一的代表團。你不需要單獨測試包裝器本身,如果它足夠簡單,可以通過檢查進行測試,或者你正在手動測試,並且不會改變(因爲單元測試不是真正關於測試,而是關於如何做容易改變)。 – Lunivore 2010-11-27 16:11:24