2012-12-06 274 views
1

我的項目包括3個層次:演示(asp.net mvc) - >業務邏輯 - >資源庫集成測試的測試控制器

我們用unittests測試所有這三個部分。

我們計劃添加集成測試。 現在我們正在決定哪個部分應該與他們一起測試。

我們認爲未來的解決方案:

  • 測試控制器,在這種情況下,系統的所有三個部分將 參與
  • 測試業務邏輯,在這種情況下,只有2件將參與

如果我們的核心用戶很少,我會從第二種解決方案中獲利。例如網站,手機版,命令工具。在這種情況下,所有客戶都將使用經過良好測試的業務邏輯。

您認爲哪種解決方案更好? 您能描述一下使用集成測試的經驗嗎?

謝謝。

回答

0

我會說你的第一個選擇應該是一個偏好。如果您要編寫跨越多個圖層的進程內(即不是瀏覽器自動化)測試,那麼您最好儘可能遠離「外部」,並儘可能多地執行儘可能多的圖層。通過調用您的控制器來啓動您的測試應該能夠提供有關您的系統行爲給予(例如)意外或不完整的用戶輸入的見解和保證。您還可以對您的操作返回的視圖模型執行斷言,從而最大限度地提高測試的相關性和覆蓋率。

0

business logic -> repository:集成測試是必要的,在這裏可以找到許多重要的錯誤。通過識別錯誤的SQL查詢,還可以在此層找到許多與性能相關的錯誤。

presentation:控制器測試有一個混合的反應。我相信Web頁面的手動或自動測試(通過編碼UI)是必要的,但UI測試可能不包括所有控制器和業務邏輯。所以目前我們也在爲控制器編寫測試。進行控制器測試的另一個原因是CodedUI自動化測試或UI手動測試需要很長時間來執行。

首先編寫接口集成測試,然後控制器測試,然後編寫UI。 手動測試應該與所有這些活動並行進行。