我正在编写一些 BDD 风格的 Spec Flow 测试,运行顺利!现在,我可以测试是否触发了数据注释验证。我认为应该使用 WatiN 工具执行此测试,因为在发布表单中的值时会触发 UpdateModel。
你如何测试验证是否触发?
我正在编写一些 BDD 风格的 Spec Flow 测试,运行顺利!现在,我可以测试是否触发了数据注释验证。我认为应该使用 WatiN 工具执行此测试,因为在发布表单中的值时会触发 UpdateModel。
你如何测试验证是否触发?
有多种方法可以做到这一点。您不必使用 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 但你只是想让它们触发。请记住,在这种情况下,您是从外部进行测试。