問題
- 如何使用EntityFramework 5測試我的ASP.NET MVC4 Web應用程序?
- 我應該使用像Moq這樣的模擬框架嗎?
介紹
我一直在研究這個話題星期。我發現了很多材料,但沒有什麼,我覺得完全可以回答這個問題。很多信息已經過去了幾年,可能不適用。如何爲我的Web應用程序編寫測試?
我的情況
我建立一個MVC4應用程序,是一個重建現有而是過時了應用程序的。數據庫已經存在(並且因此是數據庫優先方法),很大並且很複雜。理想情況下,我想要的是一個假的「實體」對象,它與我的主要實體對象相同,但使用了某種不同的「模擬」或內存數據庫,這樣我可以生成大量假數據,運行測試並接收反饋。例如:
FakeEntities _db = new FakeEntities();
// test a controller action
到目前爲止...
據我瞭解,到目前爲止,我應該使用integration testing。據this post by Ladislav Mrnka整合檢驗檢測手段控制行動,並表示與LINQ到實體和LINQ到對象
如果你嘲笑的庫中,您將使用LINQ到對象,你將有一個綠色的少的問題測試,但如果你運行Linq-To-Entities的應用程序,你會得到一個異常
我知道他的意思,我可以同意 - 我想確保我總是使用Linq-To-Entities和一個真實的(或接近真實的)數據庫。
我讀了很多關於repository pattern和this blog by linush看起來非常接近我可能會嘗試。實際上,我已經創建了一個虛擬項目,在該項目中,我測試瞭如何創建generic repository併成功使用了實體框架以及依賴於內存中的ObjectSets的「模擬」DbContext。
我的這種方法的問題是
- 如上所述,這意味着我使用LINQ到對象,而不是LINQ到實體
- 我的web應用程序將依賴於大量使用的存儲程序
摘要你回答之前
- MVC4,EF5和SQL Server(雖然我想保持somewh在數據庫無關)
- 能力測試使用SQL存儲過程
- LINQ到實體邏輯
- 數據庫,第一種方法
只有50代表這麼多的問題!!!!!!嘗試增加0的 –
[Compuware AJAX版免費網站性能分析 和調試工具](http://www.compuware.com/en_us/application-performance-management/products/ajax-free-edition/Capabilities.html) –