ASP.NET MVC 1.0下的TDD

11

我在哪里能找到一份关于ASP.NET MVC 1.0中TDD的好教程?我更喜欢视频教程,但文本教程也可以。我即将开始一个新项目,希望从一开始就做得正确。

4个回答

7

4

任何关于TDD的教程都对MVC有所帮助。我已经做了一段时间的TDD,发现它在MVC中是自然过渡的。但也有一些需要解决的特殊情况。

  1. 你通常需要模拟HttpContext,这意味着你需要在创建控制器后为其分配ControllerContext,因为这是注入模拟的唯一方法。该上下文将用于在控制器中提供Session、Request和Response对象(同时模拟它们)。新的HttpContextBase、HttpSessionStateBase等类使这个过程更加容易。

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

  3. 如果您没有在控制器操作中使用ModelBinding(在签名中具有相应参数),则为接受参数的测试方法使用并分配ValueProvider。这将允许您使用TryUpdateModel/UpdateModel而不需要向控制器添加代码来将数据从请求中传递到这些方法中。

  4. 使用模拟框架--如果以上内容不够明显的话。如果模拟依赖项,编写测试将会更加容易。我认为编写自己的模拟不值得,尽管我知道其他人可能不同意我的看法。我想这并不是MVC所特有的,但我还是想提一下。

  5. 设置一个单独的测试集,使用反射测试是否在您的方法上设置了适当的属性和适当的属性值。MVC在安全性和其他横切方面广泛使用属性。这些也需要进行测试。


2

请查看这里。 MVC商店前端是高度推荐的。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接