Viz*_*rai 7 testing ruby-on-rails
我正在尝试测试输入字段是否与我的工厂中的一个字段为空.
address => {:first_name => '', :last_name => ''}
当检查输入字段中的内容时,我一直在使用它:
assert_select '#first_name[value=?]', address.first_name
如果第一个名称为空,则不起作用.我会收到此错误,测试失败.
Expected at least 1 element matching "#first_name[value='']", found 0.
<false> is not true.
这是有道理的,因为生成的代码不具有value属性.有更好的方法来验证输入字段的值吗?
到目前为止测试这个我可以检查地址字段是否为空,然后检查是否有没有值属性的输入字段.但这很麻烦而且冗长.
通用检查的示例有效但很长:
if address.first_name.blank?
  assert_select '#first_name[value]', 0
  assert_select '#first_name[type=text]', 1
else
  assert_select '#first_name[value=?]', address.first_name
end
相关信息我正在使用:
Hpricot 0.8.1 
Nokogiri 1.1.1 
Rails 2.2.2 
Thoughtbot-Shoulda 2.0.5 
Webrat 0.4.1
也许你可以使用:
assert_select "#first_name" do
  assert_select "[value=?]", address.first_name unless address.first_name.blank?
end
我想我不能把它弄得更短了。如果它是测试用例中重复出现的模式,您可以将其提取到自定义断言中:
def assert_has_value_unless_blank(selector, value)
  assert_select selector do
    assert_select "[value=?]", value unless value.blank?
  end
end
assert_has_value_unless_blank "#first_name", address.first_name
| 归档时间: | 
 | 
| 查看次数: | 2494 次 | 
| 最近记录: |