我們幾個月進入一個綠色領域的項目來重新修改我們產品的邏輯層和業務層。通過利用MEF(依賴注入),我們實現了高水平的代碼覆蓋率,並且我相信我們擁有非常穩定的產品。當我們一直在研究一些更復雜的邏輯時,我發現它越來越難以進行單元測試。通過設計注意事項簡化測試,同時利用依賴注入
我們利用CompositionContainer來查詢這些複雜算法所需的類型。我的單元測試有時難以遵循,因爲必須進行漫長的模擬對象設置過程,恰到好處,以便確認某些情況。我的單元測試通常比我想測試的代碼花費更多的時間來編寫代碼。
我意識到這不僅是依賴注入的一個問題,而且是整個設計的問題。對於我過於複雜的測試來說,缺乏方法設計或缺乏構圖?我已經嘗試了基類分類測試,創建了常用的模擬對象,並確保儘可能地利用容器來緩解這個問題,但是我的測試總是很複雜且難以調試。有什麼提示可以讓你保持簡潔,可讀和有效的測試?
你提出了很多好點。在閱讀關於Service Locator反模式的文章後,我強烈地感覺到,這正是我們正在做的,部分原因是我們正在經歷的一些問題。我創建了這麼多的類來讓代碼更「乾淨」。我認爲我們可能跳過了MEF的槍,反過來可能會被卡住。我將不得不思考,我們可以如何重新對它進行如此大的依賴。 Moq是我選擇的嘲諷框架,並且非常喜歡。我覺得在不久的將來會有很大的重構... – 2010-03-23 04:05:32
@亞當 - 謝謝!至少你有測試來支持你的重構! :)在閱讀這本書時,我聽起來很霸道;我爲此道歉。聽起來像你在正確的軌道上。 – TrueWill 2010-03-23 14:43:03
不用擔心。我不認爲這是高壓手段。乾杯! – 2010-03-23 15:51:33