1

我正在编写一些 BDD 风格的 Spec Flow 测试,运行顺利!现在,我可以测试是否触发了数据注释验证。我认为应该使用 WatiN 工具执行此测试,因为在发布表单中的值时会触发 UpdateModel。

你如何测试验证是否触发?

4

2 回答 2

4

有多种方法可以做到这一点。您不必使用 WatiN 来检查验证,我正在使用 SpecFlow 调用控制器方法,然后询问 ModelState 属性,检查我输入的无效数据中预期会引发的错误。

您还可以使用 WatiN 通过附加到浏览器并使用 Find.ByText("Error Message") 方法来检查特定的错误文本是否显示在屏幕上。

如果您还没有,我强烈建议您阅读这篇文章,在开始使用 SpecFlow/WatiN 和 BDD 时对我有很大帮助:http: //msdn.microsoft.com/en-us/magazine/gg490346.aspx

希望有帮助。

于 2011-03-08T15:58:10.150 回答
0

通过用无效数据测试它们......(和有效数据)

如果您的模型有一个注释只是触发值,您可以编写一个场景,例如

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 但你只是想让它们触发。请记住,在这种情况下,您是从外部进行测试。

于 2011-03-08T15:27:18.427 回答