.net MVC功能测试
如何对.net mvc控制器/操作进行功能测试.
我刚刚从多年的Rails开发变成了一个我正在攻击.net mvc的演出.它很痛,但我希望这很大一部分只是学习曲线. 对我来说,不容易看到的是.NET世界中Rails功能和集成测试的模拟. Rails使功能测试变得如此明显和简单,以至于不花时间来实现覆盖,你就是愚蠢的.使用.NET – 我还没有让Google产生一个看起来值得的结果.我希望这是我新生的.net状态,这只是让我无法输入正确的搜索条件或错过一些范例. 救命! 解决方法
请原谅我缺乏Rails的知识,并告诉你你已经知道的有关rails的内容,但我希望能为其他用户提供比较格式.
Rails有3种类型的测试单元,功能和集成. 单元测试测试您的模型 控制器的功能测试 集成测试用于测试控制器操作之间的流程 这种范式似乎从一开始就用rails来教导. 但是在.NET MVC世界中,测试方法并没有像在Rails中那样进行布局. 许多开发人员将在您的模型中编写单元测试的方式在其控制器上编写单元测试.您基本上调用方法(Controller Action)并从方法中获取对象.然后,您可以断言它具有您期望的值.这样做是一个痛苦的屁股,因为你必须模拟这么多的废话(HttpContext等).另外,它不是功能测试.您只测试一种方法,而不是测试应用程序的功能. 在Rails中,您没有在控制器上编写单元测试,您实际上正在发出Web请求并获得Web响应.您可以检查状态代码,cookie等.您正在从头到尾测试系统. 在.NET MVC中有几种方法可以做到这一点 1)Steven Sanderson有一个小工具来帮助解决这个问题. http://blog.stevensanderson.com/2009/06/11/integration-testing-your-aspnet-mvc-application/ 当我第一次看到它并开始使用它时,我认为它很棒,但我遇到了问题. 2)RestSharp NUnit – 这是我目前对进行这些测试的偏好.它允许您将Web请求放在一起并获得响应非常简单.使用一些通用方法,您可以使用restsharp快速移动. NUnit将为您提供所需的断言.我只是针对我的本地IIS服务器发出请求,并断言我在响应中期望的不同项目.您将无法像在轨道中那样测试分配给视图的模型,但这对我来说并不是问题. 如果您已经习惯了RSpec,那么您可以获得类似的SpecFlow. Rails将测试构建到框架中,它是一流的公民.它太糟糕了,这不是.NET MVC中的这种方式. 希望有所帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 用于MVC开发的Visual Studio 2010 Express吗
- asp.net – Web Api – 如何直接从OnActionExecuting过滤器
- 如何使用ASP.NET C#设置html输入类型文本值?
- asp.net-mvc-5 – nuget中用于与WEB API集成的Ninject包中有
- asp.net – 无法获取项目引用的依赖项
- ASP.net c# – 无法加载类型
- asp.net-mvc-3 – .NET 4.0 MEF.可插入的ASP.NET MVC 3.0方
- asp.net-mvc – 基于MVC中应用程序的语言选择对必需字段验证
- asp.net-mvc – StringLength / Minlength验证不会阻止用户
- 使用asp.net FtpWebRequest 实现FTP常用功能
- asp.net – MVC5中IdentityDbContext和IdentityD
- asp.net-mvc – 变化:*错误地添加到http标头响应
- asp.net – 获取当前以aspnet mvc成员身份登录的
- 你可以在ASP.NET中指定差异./,../,~/
- iis-7 – 虚拟文件夹中的ASP.NET应用程序使用网站
- asp.net-mvc – 使用EF4转换为datetime时发生溢出
- asp.net – 我应该为10,000个并发用户实现哪个.n
- asp.net – 无法加载文件或程序集“System.Web.M
- asp.net – 如何使用HTML.ActionLInk构建嵌套路由
- asp.net-mvc – 如何在特定的mvc3控制器/动作中授