2013-04-05 90 views
1

我們在我們的應用中使用n層架構。 假設我們使用3層應用程序,並使用表示層的MVC模式,哪個層應測試? 如何在我的應用程序中找到可測試性點?哪一層應該在n層架構中測試

  1. 表示層?
  2. 業務層
  3. 數據層
  4. 所有這些?
+0

什麼不測試:http://stackoverflow.com/questions/1084336/what-should-not-be-unit-tested – 2013-04-05 11:54:56

回答

2

只測試你想要確保工作的圖層。以上三點似乎都是重要的工作。你不想刪除它們中的任何一個。

試圖在尚未設計的現有軟件中發現可測試性點可能是一個挑戰。有一本好書,Working Effectively with Legacy Code,其中遺產被定義爲沒有測試的代碼,它討論了這個問題。基本上,如果你沒有設計可測試性,它可能很難發聲,你可能需要重構。訣竅是將測試基礎設施添加到代碼中:嘲笑,存根和其他測試組件,以允許您隔離測試中的位。當您測試數據庫時,這非常有用,您不希望運行真正的查詢,它只會花費太長時間,而且您希望測試成爲FAST。依賴注入可以對更多靜態語言有所幫助,如C++/C和Java。

1

什麼是單元測試中的「單元」?無論您將其確定爲一個單元,它都是代碼中最小的可測試部分。

這些天,大多數人選擇類或方法作爲他們的單位。如果你這樣做,你所有的圖層將包含你可以單元測試的單位,所以你的問題的答案是測試所有的單元。