我的ASP.NET MVC应用程序中的控制器根据几个相当直接的规则预先填充了我的视图显示的表单数据.
在我的单元测试中,这似乎是一件好事.但是,我可以看到验证正确数据的唯一方法是放置在表单中,将从控制器中提取逻辑,感觉就像一种非自然的方式.
有人可以建议接近这个方法吗?
我发现单元测试控制器的所有示例似乎非常微不足道,例如验证它是否返回预期的视图类型.我不知道我甚至看到了这个价值.
解决方法
您可以通过将返回的对象转换为适当的类来测试,而不是使用它们的基类(默认情况下返回)
例如,要测试默认的AccountController,您可以这样做:
var controller = new AccountController(); var result = controller.logon() as ViewResult; var model = result.Model as logonModel; Assert.IsTrue(model.RememberMe); // assuming you "pre-populated" enabled the checkBox
检查返回的对象是否填充正确的数据对我来说似乎不是“不自然的”,还是你的意思不同?