2009-12-07 139 views
0

我想測試數據層,我該如何解決這個問題?我正在使用NUnit進行業務對象測試。我必須使用模擬對象(我以前從未使用過)?單元測試數據訪問層

如果有人能夠正確引導我,我將不勝感激。

+0

你能否介紹一下DAL?它使用LINQ到SQL,ADO.NET或其他東西嗎?你能否也請告訴你正在使用的數據對象是什麼?最後,你想測試什麼樣的東西 - 例如查詢或數據對象的構建方式? – Elisha 2009-12-07 08:37:16

回答

1

使用模擬對象取決於您的單元測試。如果你不想初始化許多對象來測試單個對象,你可以使用模擬來模擬其他對象的行爲。

對於測試DAL對象,每次運行測試時都必須重置DB狀態。由於在數據庫上運行測試會創建很多記錄,這些記錄可能會改變數據庫的狀態。

4

你將不得不這樣做:

  1. 獨立的業務層(或控制器層)的數據訪問之遙。確保您的數據訪問層完全乾淨。你需要模擬來做到這一點。
  2. 如果您使用的是ORM(如NHibernate),請將數據庫供應商更改爲輕量級(例如sqlite,將其設置爲配置中的內存),以便您可以針對內存數據庫執行測試。通過這種方式,您不必擔心諸如資源清理等混亂的事情。當然,您需要在做測試之前預先填充數據。

這裏的an answer單元測試你可能會覺得有用的DAL。