我們在我們的應用中使用n層架構。 假設我們使用3層應用程序,並使用表示層的MVC模式,哪個層應測試? 如何在我的應用程序中找到可測試性點?哪一層應該在n層架構中測試
- 表示層?
- 業務層
- 數據層
- 所有這些?
我們在我們的應用中使用n層架構。 假設我們使用3層應用程序,並使用表示層的MVC模式,哪個層應測試? 如何在我的應用程序中找到可測試性點?哪一層應該在n層架構中測試
只測試你想要確保工作的圖層。以上三點似乎都是重要的工作。你不想刪除它們中的任何一個。
試圖在尚未設計的現有軟件中發現可測試性點可能是一個挑戰。有一本好書,Working Effectively with Legacy Code,其中遺產被定義爲沒有測試的代碼,它討論了這個問題。基本上,如果你沒有設計可測試性,它可能很難發聲,你可能需要重構。訣竅是將測試基礎設施添加到代碼中:嘲笑,存根和其他測試組件,以允許您隔離測試中的位。當您測試數據庫時,這非常有用,您不希望運行真正的查詢,它只會花費太長時間,而且您希望測試成爲FAST。依賴注入可以對更多靜態語言有所幫助,如C++/C和Java。
什麼是單元測試中的「單元」?無論您將其確定爲一個單元,它都是代碼中最小的可測試部分。
這些天,大多數人選擇類或方法作爲他們的單位。如果你這樣做,你所有的圖層將包含你可以單元測試的單位,所以你的問題的答案是測試所有的單元。
什麼不測試:http://stackoverflow.com/questions/1084336/what-should-not-be-unit-tested – 2013-04-05 11:54:56