{
ISearchEngine engine = InternetSearchEngine.Instante;
Assert.IsNotNull(engine);
……
}
既然有如此多的類型,類型的創建就必須通過工廠進行管理。此時測試代碼需要做進一步的修改:
[Test]
public void TestInternetSearching()
{
ISearchEngineFacotry fatory = new InternetSearchEngineFactory();
ISearchEngine engine = factory.CreateInstante(“Internet”);
Assert.IsNotNull(engine);
……
}
同理,我們應該分別實現測試方法TestLocalSearching()和TestDBSearching()。
按照這樣的思路,分別對存儲功能和顯示功能進行重構。記住,每做一步重構,都需要嚴格按照TDD的方式。首先寫出測試代碼,然后在NUnit運行。如果是紅燈,需要寫出相應的代碼,再運行NUnit,直到全部均為綠燈為止。
三、第一步的小結
表面上看,這樣繁復地寫測試代碼,程序代碼,確實是有些Kill Time了。但我們需要認真地思考所謂“發現價值”的意義。通過測試先行的方式,以模擬客戶應用的狀態來考量客戶的需求,并通過此驅動程序員一步一步地到達“生產價值”的終點!鞍l現”與“生產”并行不悖,同時“質檢員”一直跟隨其間,保證了產品的質量。
就好比Nike鞋的生產,必須以體貼用戶的角度出發,設計出吸引人的樣式,那么大規模的生產才會有盈利的可能。
TDD的生產過程也許慢了一點,但請不要忽略了它其實已經省去了編碼后單元測試的時間。相加相減之后,又會浪費多少時間呢?所以,千萬不要以“時間緊”的理由來搪塞我哦。
文章來源于領測軟件測試網 http://www.kjueaiud.com/