我在哪里能找到一份关于ASP.NET MVC 1.0中TDD的好教程?我更喜欢视频教程,但文本教程也可以。我即将开始一个新项目,希望从一开始就做得正确。
我在哪里能找到一份关于ASP.NET MVC 1.0中TDD的好教程?我更喜欢视频教程,但文本教程也可以。我即将开始一个新项目,希望从一开始就做得正确。
任何关于TDD的教程都对MVC有所帮助。我已经做了一段时间的TDD,发现它在MVC中是自然过渡的。但也有一些需要解决的特殊情况。
你通常需要模拟HttpContext,这意味着你需要在创建控制器后为其分配ControllerContext,因为这是注入模拟的唯一方法。该上下文将用于在控制器中提供Session、Request和Response对象(同时模拟它们)。新的HttpContextBase、HttpSessionStateBase等类使这个过程更加容易。
由于(1),花些时间编写一些辅助类放在单独的类库中,可以被所有测试项目使用。这些辅助类应包含提供可配置的(或多个方法以提供特定配置)模拟上下文的方法。这将有助于保持测试紧凑。
如果您没有在控制器操作中使用ModelBinding(在签名中具有相应参数),则为接受参数的测试方法使用并分配ValueProvider。这将允许您使用TryUpdateModel/UpdateModel而不需要向控制器添加代码来将数据从请求中传递到这些方法中。
使用模拟框架--如果以上内容不够明显的话。如果模拟依赖项,编写测试将会更加容易。我认为编写自己的模拟不值得,尽管我知道其他人可能不同意我的看法。我想这并不是MVC所特有的,但我还是想提一下。
设置一个单独的测试集,使用反射测试是否在您的方法上设置了适当的属性和适当的属性值。MVC在安全性和其他横切方面广泛使用属性。这些也需要进行测试。