2012-07-16 290 views
0

在過去的2個月裏,我一直在努力學習新的MVC框架。在瞭解了所有面向對象概念後,我創建了一個使用MVC3,EF4 w/DbContext和ASP.Net Membership Provider的測試站點。一切都很順利。然後,我決定從單元測試開始深入並學習測試。VS VS VS VS 11中的MVC測試

2周敲我的頭靠在我的鍵盤之後,我現在覺得沮喪均可。我已經經歷了大量的視頻教程(TekPub,複數視域),在線教程(ASP.Net,Microsoft等..等等)和大量的StackOverflow問題/答案。我現在排序的(哈哈!)瞭解鬆耦合,依賴注入,Respositories,接口,存根,嘲笑(是的,我讀了福勒的文章很多次),墊片,lambda表達式,重構......這樣的例子不勝枚舉和(...上)。我已經看過Ninject,Structuremap,Moq,TypeMock,JustMock,nUnit,xUnit等等......

所以我知道有很多方法去皮膚這隻貓。現在我看到VS11/MVC4出來了,他們有這個叫做Fakes的東西,它似乎是靜態方法(比如Membership)的一個很好的選擇。

我的問題:

我想測試我的MVC EF4 /的DbContext /會員申請。我的大部分頁面都需要經過身份驗證的用戶[授權],在我開始測試實際的方法之前,我的頁面都需要[授權]。

如果你剛剛起步的(比如我),什麼是測試我的CRUD應用程序最簡單,最簡單的途徑?我不一定喜歡在生產環境中運行DI框架(只是另一件可能會出錯的東西),並且我發現當所有東西都出去時,壓裂的東西都很混亂。

我可以升級到VS11/MVC4並嘗試使用Fakes方法。似乎稍微簡單一些,但仍然看起來像我需要EF東西的所有Respository/Interfaces。

或者,你只是不幹了,並使用像硒的集成測試工具(這是我曾與基於表單開發之前使用)?

任何建議,非常感謝。對不起,如果這是一個糟糕的問題,但我希望在這裏的光線...

回答

0

對於所有版本的mvc或程序它幾乎相同的測試方式。

你應該擁有基於接口的大部分邏輯。這將允許你分開關注點和單元測試任何你需要的東西,這也會給你假的假設(創建假實現)或模擬(在運行時創建類,它將表示你想要的邏輯,使用Mock或Rhino模擬)邏輯。

你可以閱讀更多關於基本單元測試在這裏:

http://msdn.microsoft.com/en-us/magazine/dd942838.aspx

此外,我會建議你對本書,史蒂芬·桑德森有包括大部分的單元測試示例應用程序看看。

http://www.amazon.co.uk/Pro-ASP-NET-MVC-Framework-ebook/dp/B005PZ07US

在這裏你介紹起訂量 http://www.codeproject.com/Tips/182847/An-Introduction-to-MOQ

你有替代如犀牛模擬:

http://ayende.com/blog

和一些例子: http://daysincode.blogspot.com/2012/06/examples-of-mocking-with-rhino-moq.html

當然這裏的一切都會導致:http://msdn.microsoft.com/en-us/magazine/ekstremalna-przerobka-asp-net--czesc6-podzial-obowiazkow.aspx