在哪里可以找到有关ASP.NET MVC 1.0的TDD的好教程?我更喜欢视频教程,但文本教程也会很好。我有一个新项目即将开始,我想从右脚开始。
在哪里可以找到有关ASP.NET MVC 1.0的TDD的好教程?我更喜欢视频教程,但文本教程也会很好。我有一个新项目即将开始,我想从右脚开始。
该 店面视频 来自ASP.NET是必看的系列。
有关TDD的任何教程都将对MVC有所帮助。我一直在做TDD,发现这是MVC的自然过渡。我发现有一些特点需要解决。
您经常需要模拟HttpContext,这意味着您需要在创建后将ControllerContext分配给控制器,因为这是注入模拟的唯一方法。上下文将用于在控制器中提供Session,Request和Response对象(也可以模拟它们)。新的HttpContextBase,HttpSessionStateBase,...类使这更容易。
由于(1),花一些时间将一些辅助类放在一个单独的类库中,可以被所有测试项目使用。这些辅助类应该包含提供模拟上下文的可配置(或多个方法以提供特定配置)的方法。这有助于保持测试的紧凑性。
如果您没有对控制器操作使用ModelBinding(在签名中使用相应的参数),请使用并分配ValueProvider来测试接受参数的方法。这将允许您使用TryUpdateModel / UpdateModel而无需向控制器添加代码以将Request中的数据提取到这些方法中。
使用模拟框架 - 如果从上面不明显的话。如果模拟出依赖关系,那么编写测试会容易得多。编写自己的模拟IMO是不值得的,尽管我知道其他人不同意这种观点。我想这不是MVC独有的,但我想我会提到它。
设置一组单独的测试,这些测试使用反射来测试是否在方法上设置了具有适当属性的适当属性。 MVC大量使用属性来实现安全性和其他交叉方面。这些也需要进行测试。
查看 这里。强烈建议使用MVC商店。
我认为Rob Conery的'ASP.NET MVC店面入门套件' http://www.asp.net/learn/mvc-videos/#MVCStorefrontStarterKit 非常适合用ASP.NET MVC演示TDD。