【发布时间】:2011-07-11 04:01:20
【问题描述】:
我正在编写一些 BDD 风格的 Spec Flow 测试,运行顺利!现在,我可以测试是否触发了数据注释验证。我认为应该使用 WatiN 工具执行此测试,因为在发布表单中的值时会触发 UpdateModel。
您如何测试验证是否触发?
【问题讨论】:
标签: asp.net-mvc bdd specflow
我正在编写一些 BDD 风格的 Spec Flow 测试,运行顺利!现在,我可以测试是否触发了数据注释验证。我认为应该使用 WatiN 工具执行此测试,因为在发布表单中的值时会触发 UpdateModel。
您如何测试验证是否触发?
【问题讨论】:
标签: asp.net-mvc bdd specflow
您可以通过多种方式做到这一点。您不必使用 WatiN 来检查验证,我正在使用 SpecFlow 调用控制器方法,然后询问 ModelState 属性,检查我输入的无效数据会引发的错误。
您还可以使用 WatiN 通过附加到浏览器并使用 Find.ByText("Error Message") 方法来检查特定的错误文本是否显示在屏幕上。
如果您还没有阅读这篇文章,我强烈建议您阅读这篇文章,它在开始使用 SpecFlow/WatiN 和 BDD 时对我有很大帮助: http://msdn.microsoft.com/en-us/magazine/gg490346.aspx
希望对您有所帮助。
【讨论】:
通过使用无效数据测试它们...(和有效数据)
如果你的模型有一个注释,你可以写一个像
这样的场景Scenario: Adding an invalid user
GIVEN I am in the add user page
AND I have not filled in the name
WHEN I Add
THEN I should see the error defined in my annotation
更多关于测试注释的信息在这里http://bradwilson.typepad.com/blog/2009/04/dataannotations-and-aspnet-mvc.html 但你只是想让他们开火。请记住,在这种情况下,您是从外部进行测试。
【讨论】: