我在ASP.NET MVC Web應用程序上運行TDD。通過DI容器實例化集成測試
標準做法是創建集成測試來演示通過DI容器(在我的情況下爲Castle Windsor)的類型的正確實例化嗎?
如果是這樣,你會嘲笑容器,還是直接使用它?
或...這是因爲某些原因而沒有完成的?
謝謝。
我在ASP.NET MVC Web應用程序上運行TDD。通過DI容器實例化集成測試
標準做法是創建集成測試來演示通過DI容器(在我的情況下爲Castle Windsor)的類型的正確實例化嗎?
如果是這樣,你會嘲笑容器,還是直接使用它?
或...這是因爲某些原因而沒有完成的?
謝謝。
在測試驅動開發術語測試通常被解釋爲單位測試,不集成測試,所以在純TDD過程中,我也不會認爲這是標準的做法,編寫和運行集成測試任何形式的。
這並不意味着編寫和運行集成測試並不值得 - 它不被認爲是TDD的標準做法。但是,如果擴大範圍以涵蓋一般的敏捷開發,則大多數敏捷組織認爲它是維護和運行自動驗收測試的標準組成部分。
集成測試就像你問的那些測試很適合這種類型的過程。您可能不想在開發機器上經常這樣做,但仍然需要持續集成(CI)構建,或者至少每日構建一次(根據複雜性)。
當您將它們視爲驗收測試時,讓您的DI容器解析整個堆棧是最有意義的 - 也就是說,在這種情況下不會涉及任何mock:您必須測試真正的交易。
但是,底線是:如果它適合你,那麼做。敏捷/精益開發不是關於教條 - 它是關於不斷尋找和應用使您的團隊最有成效的技術。雖然從別人的錯誤和成功中學習是有價值的,但您必須最終嘗試並衡量對您的團隊最有效的方法。
很好回答,謝謝 – Ben 2009-11-28 17:29:38