2010-03-31 28 views
0

我對測試控制器非常有經驗,我的問題在這裏,但是,我們是不是應該測試數據上下文,以及如何?我的意思是,來自數據庫的許多關係和限制僅僅是測試控制器不包括在內。在asp.net測試上下文mvc

另一方面,對數據庫進行測試並不被認爲是一種好的做法 - 那麼呢?簡單地測試沒有db.SubmitChanges()或什麼?

回答

0

當談到測試存儲庫時,典型的方法是創建一個內存數據庫,每次運行測試時都可以拆卸並重建。通過使用這種方法,您將始終知道數據的外觀,以便您可以更輕鬆地對其進行斷言。另外,你不會觸摸你真實的數據,這總是一個積極的。 Sqlite是.NET空間中最受歡迎的一個。

0

是的,你應該做的整合數據方面的測試,以保證任何「碼」那你把數據庫本身的工作原理 - 唯一性約束,觸發器等,這並不意味着你應該做的但是,您的單元針對數據庫進行了測試。話雖如此,您放入模型類的任何代碼都應該進行單元測試。通常,你可以做到這一點,而不必直接對數據庫進行測試。例如,任何驗證代碼都應該能夠運行而不需要實際插入或更新數據庫。

+0

問題是我使用jQuery驗證,因爲系統事先並不知道哪些屬性具有什麼驗證。我通過管理面板添加自定義內容類型,並通過該管理面板爲每個字段添加驗證=>模型類中沒有任何驗證代碼 – xantrus 2010-03-31 11:59:36

+0

我並不是暗示需要在模型中包含驗證代碼,只需要使用它作爲你應該單元測試的模型中的代碼示例(如果它存在的話)以及哪些不應該要求訪問真實的數據庫。 – tvanfosson 2010-03-31 12:15:56

1

恕我直言,你不應該測試DataContext。希望微軟已經這樣做了,因此測試SubmitChanges將數據保存到數據庫對我來說毫無意義。您應該執行集成或Web測試,以定義特定方案並驗證應用程序的輸出。