3

我有涵盖我的模型绑定器的单元测试。我创建一个 ModelBindingContext 并用我的测试值填充 ValueProviderDictionary。我有信心,一旦我的控制器获得模型,一切都被测试覆盖,正确的事情正在发生。我也有信心,如果 BindingContext 正确,我的模型将正确绑定。我没有信心的是,我的视图在回发时会正确填充 BindingContext。

我已经开始编写WatiN 测试来填写表格,将它们发回,然后检查生成的视图。这没关系,但似乎非常……间接。例如,点击提交后显示“您的订单已保存”的页面——我必须访问数据库以查看它是否已正确保存。我已经有测试,当传递给我的控制器的模型是 x 时,y 被保存到数据库中。为什么我在视图测试中重复此代码?

我真正想要的是填充视图,点击提交,然后检查 (a) BindingContext 或 (b) 从 ModelBinder 返回的模型。

有没有关于如何做这些事情的做法?


只是想补充一点,这将是 WatiN 测试的补充。我现在有大约 50 个 WatiN 测试(还有很多要添加),如果我可以在没有 WatiN 的情况下执行上述操作,它只会删除少数测试。我会继续使用 WatiN 来做它的好处,但我觉得我现在正在滥用它来进行那些少数测试。

4

2 回答 2

3

您可以从http://blog.codeville.net/2009/06/11/integration-testing-your-aspnet-mvc-application/尝试 Steve Sanderson 的 MvcIntegrationTest 。

于 2009-10-10T02:36:43.623 回答
0

在您的情况下,模型绑定只会在您的视图不遵循框架约定时失败。发生这种情况的第一个迹象是,当您的视图未显示预期结果时。下一个可能是当您的 WatiN 测试在帖子上失败时。

从技术上讲,是的,这是间接测试,但也是最务实的一种。除了观察它们是否有效之外,您还如何验证所有视图都遵守约定?

于 2009-09-15T12:54:03.520 回答