我正在使用Rails学习黄瓜和Webrat,并且想要一些关于测试“编辑”表单的最佳方式的建议.当我浏览到用户的个人资料时,我会看到一个编辑表单,用户的信息预先填写在表单域中.我想能够测试这些字段实际上包含我期望的信息.这是我的场景:
Scenario: View My Profile Given I am logged in as "Mike" with password "secret" When I go to my profile page Then I should see "Mike" in the "Login" field And I should see "mike@email.com" in the "Email" field And I should see a blank "Password" field And I should see a blank "Password confirmation" field
黄瓜告诉我,正确的是,我需要定义以下自定义步骤:
Then /^I should see "([^\"]*)" in the "([^\"]*)" field$/ do |arg1,arg2| pending end Then /^I should see a blank "([^\"]*)" field$/ do |arg1| pending end
我确定我可以找出一些令人讨厌的正则表达式来实现评估这些步骤,但我觉得必须有一些已经存在的东西,或者更优雅,我可以做.如何使用预先填充在表单域中的数据来评估表单?
解决方法
看看features / step_definitions / webrat_steps.rb,下面的步骤定义看起来像你要找的:
Then /^the "([^\"]*)" field should contain "([^\"]*)"$/ do |field,value| field_labeled(field).value.should =~ /#{value}/ end