6

如何通過在實現中使用LINQ 2 SQL的域層/模型(存儲庫)來集成測試數據庫,並在發現數據庫時保留該數據庫?換句話說,單元測試DB的理想世界,集成測試會在數據庫發現時留下。如何使用LINQ2SQL通過存儲庫運行數據庫集成測試?

那裏有哪些工具可以自動處理?通過存儲庫對數據庫執行集成測試的最佳實踐是什麼?

+0

從技術上講,這將是集成測試;) – womp 2009-08-11 22:05:55

+0

@womp:調整... – RSolberg 2009-08-11 22:30:52

+0

我最近一直在想這個。我使用LINQ2SQL,但我想在XML中有一個「參考」數據庫。對於測試,我只是用XML自動生成的東西將指向我的文件的SQL自動生成的東西切換出來。測試可以輕鬆「回滾」(複製/測試/移動)XML文件。我可以對測試數據進行微調,這對於版本控制很容易。不過,我不確定如何讓LINQ創建一個匹配的XML框架。我還沒有開始詢問這方面的可行性或智能。 – 2009-08-11 23:29:32

回答

1

Spring框架provides support for integration testing when using NUnit。 NUnit類位於程序集Spring.Testing.NUnit.dll中。在這裏有一些classes that perform transaction management。這些類爲每個測試創建並回滾數據庫事務。您只需編寫可以假定交易存在的代碼。

這是否會實際與Linq to SQL一起工作是另一回事。 Spring說這適用於ORM。 SQL Server 2008允許你嵌套事務,所以理論上你可以開始一個事務,通過Linq to SQL類執行你的測試,然後回滾你的事務。但我沒有
試了一下。

瑞安Garaguay具有an interesting article這個它採用TransactionScope和NUnit回滾數據庫的變化(雖然他在他的測試代碼中使用的SqlCommand和的SQLConnection對象,而不是LINQ)

相關問題