使用ASP.NET MVC 1.0的TDD

时间:2009-04-24 02:30:58

标签: asp.net-mvc tdd

在哪里可以找到关于使用ASP.NET MVC 1.0的TDD的好教程?我更喜欢视频教程,但文本教程也不错。我有一个新项目即将开始,我想从右脚开始。

4 个答案:

答案 0 :(得分:7)

ASP.NET中的Storefront Videos是必看的系列。

答案 1 :(得分:4)

任何有关TDD的教程都将对MVC有所帮助。我一直在做TDD,发现这是MVC的自然过渡。我发现有一些特点需要解决。

  1. 您经常需要模拟HttpContext,这意味着您需要在创建后将ControllerContext分配给控制器,因为这是注入模拟的唯一方法。上下文将用于在控制器中提供Session,Request和Response对象(也可以模拟它们)。新的HttpContextBase,HttpSessionStateBase,...类使这更容易做到。

  2. 由于(1),花一些时间将一些辅助类放在一个单独的类库中,可以被所有测试项目使用。这些辅助类应该包含提供模拟上下文的可配置(或多个方法以提供特定配置)的方法。这有助于保持测试的紧凑性。

  3. 如果未对控制器操作使用ModelBinding(在签名中使用相应的参数),请使用并指定ValueProvider来测试接受参数的方法。这将允许您使用TryUpdateModel / UpdateModel而无需向控制器添加代码以将Request中的数据提取到这些方法中。

  4. 使用模拟框架 - 如果从上面不明显的话。如果模拟出依赖关系,那么编写测试会容易得多。编写自己的模拟IMO是不值得的,尽管我知道其他人不同意这种观点。我想这不是MVC独有的,但我想我会提到它。

  5. 设置一组单独的测试,使用反射来测试是否在方法上设置了具有适当属性的适当属性。 MVC大量使用属性来实现安全性和其他交叉方面。这些也需要进行测试。

答案 2 :(得分:2)

结帐here。强烈建议使用MVC商店。

答案 3 :(得分:0)

我认为Rob Conery的'ASP.NET MVC店面入门套件'http://www.asp.net/learn/mvc-videos/#MVCStorefrontStarterKit非常适合用ASP.NET MVC演示TDD。