2011-04-29 80 views
1

我剛開始我的第一個MVC3應用程序,我不知道如何進行單元測試。我打算將助手類(通常是靜態助手)分解成單獨的程序集以及模型類,以便我可以使用NUnit對它們進行測試。單元測試ASP.NET MVC3應用程序(與NHibernate)

所以我很好的幫手類;但我該如何測試模型類(考慮到它們註釋了NHibernate並綁定到數據庫),以及如何測試我的視圖和控制器?

我需要測試NHibernate綁定模型以及ASP.NET視圖和控制器的特定工具和技術是什麼?我不確定。 NUnit只解決了一些問題。

編輯:下面是一些代碼示例 - 我現在不在我的開發機器中,所以我沒有真正的代碼來顯示大小寫。

具體問題:

  • 如何測試保存模型,而不實際保存到主/生產數據庫
  • 範圍測試的看法;我應該簡單地測試字段存在嗎?驗證錯誤消息呢?
  • 控制器:測試範圍。我應該測試操作是否觸及並按預期變形數據庫數據(例如,/ get/id獲取該對象;/delete/id刪除該對象)?
+0

顯示您想單元測試的代碼示例。目前你的問題很難回答。 – 2011-04-29 23:16:47

+0

我沒有任何複雜的東西(我在這臺計算機上沒有ASP.NET MVC3),所以我引用了鏈接。 Starter代碼幾乎是我的(ActiveRecord/NHibernate模型,標準的ASP.NET MVC3視圖和控制器)。 – ashes999 2011-04-29 23:51:11

回答

1

您可以通過各種考驗那裏,但你需要明智地運用它們取決於你要考什麼:

  • 使用單元測試來測試你的控制器,或您的企業邏輯,而不會觸及數據庫。

  • 通過運行在內存數據庫(NHibernate支持並易於設置)上使用集成測試。您可以確保某個場景可以正常工作,例如使用有效的場景,所有的業務邏輯都在工作,控制器將數據傳遞給持久性機制,並將其正確地傳遞到數據庫中。

  • 您可以使用使用框架的UI測試,如Selenium,但只能在真正需要的地方進行,因爲它不像以前的兩種測試類型那樣容易,而且很難維護和脆弱。

它是讓你的看法(UI)薄膜,並測試UI落後於其他層,如測試UI最好的做法可能不值得所有的麻煩。