在过去的两个月里,我一直在努力学习新的 MVC 框架。在了解了所有面向对象的概念之后,我使用 MVC3、EF4 w/ DbContext 和 ASP.Net Membership 提供程序创建了一个测试站点。一切进展顺利。然后,我决定潜入并学习测试,从单元测试开始。
在我的头撞在键盘上两周之后,我现在感到非常沮丧。我浏览了大量的视频教程(TekPub、Plural-sight)、在线教程(ASP.Net、Microsoft 等)以及大量 StackOverflow 问题/答案。我现在有点(哈!)了解松散耦合、依赖注入、存储库、接口、存根、模拟(是的,我多次阅读 Fowler 的文章)、Shims、lambdas、重构......这个列表还在继续( ...等等。)。我看过 Ninject、Structuremap、Moq、TypeMock、JustMock、nUnit、xUnit 等...
所以我知道有很多方法可以给这只猫剥皮。现在我看到 VS11/MVC4 即将问世,他们有一个叫做 Fakes 的东西,这对于像 Membership 这样的静态方法来说似乎是一个不错的选择。
我的问题:
我想测试我的 MVC EF4/DbContext/Membership 应用程序。我的大多数页面都需要经过身份验证的用户 [Authorize],而那是在我使用要测试的实际方法之前。
如果您刚刚开始(像我一样),那么测试我的 CRUD 应用程序的最简单和最简单的方法是什么?我不一定喜欢在生产端运行 DI 框架(只是另一件可能出错的事情),而且我发现压裂的事情令人困惑,因为所有人都出去了。
我可以升级到 VS11/MVC4 并尝试使用 Fakes 方法。似乎稍微简单一些,但似乎我仍然需要 EF 的所有资源库/接口。
或者你会放弃它并使用像 Selenium 这样的集成测试工具(这是我之前在基于表单的开发中必须使用的工具)?
非常感谢任何建议。对不起,如果这是一个糟糕的问题,但我希望这里有一丝曙光......