我正在使用EF做TDD項目。我想單元測試我所做的插入操作。我應該怎麼做?使用Entity Framework測試插入數據庫
我的想法;
在單元測試中,如果插入成功,我可以查詢數據庫。
我可以依靠我的業務庫上的其他方法來檢查插入是否成功,但我認爲這違反了UNIT測試的目的。
您有什麼建議?
或者我應該使用模擬框架,如Moq?
我正在使用EF做TDD項目。我想單元測試我所做的插入操作。我應該怎麼做?使用Entity Framework測試插入數據庫
我的想法;
在單元測試中,如果插入成功,我可以查詢數據庫。
我可以依靠我的業務庫上的其他方法來檢查插入是否成功,但我認爲這違反了UNIT測試的目的。
您有什麼建議?
或者我應該使用模擬框架,如Moq?
這實際上是集成測試而不是單元測試,通常使用TDD i測試來測試我的系統的邊界,即達到但不包括實際調用外部系統的組件。這種方法的一個例子可以在這裏找到:http://dl.dropbox.com/u/37129059/StaticVoid.Repository.Demo.zip使用我的存儲庫框架(http://blog.staticvoid.co.nz/2011/10/staticvoid-repository-pattern-nuget.html)。
說了這些之後,它對集成測試也很有價值,特別是在大型項目上,無論是通過自動UI測試還是其他方式。
你所要做的就是集成測試,而不是單元測試。人們想要測試ORM行爲的唯一目的是檢查映射是否有效。所以你的測試用例是完全有效的。 你應該做的只是創建你的實體對象,並將其保存在數據庫中。取回持久對象並與剛剛創建的實體對象進行比較。如果所有字段/屬性都相等,EF映射工作正常。
我認爲這是EF大約可測試性最好的文章:
其實你是對的,這是我witj EF的第一個項目。所以我想測試我使用它的方式。 – 2012-03-17 08:37:22