我使用RSpec和Capybar来测试我的应用程序。在我的一个功能规范中,我想断言一个字段有一定的值。当我使用Capybara的find_field
时,我会遇到一些奇怪的行为。 (下面的代码与capybara-webkit一起运行,因为字段值由AngularJS呈现,如果这很重要的话)。
此代码可以正常工作:
expect(find('input[name=ordered_quantity]').value).to eq '0'
但我宁愿使用find_field ..., with: ...
方法,我觉得它比find(...).value
更清晰一些。以下代码通过,但带有警告,表示它忽略了with
过滤器:
is_expected.to have_field('ordered_quantity'), with: '0'
# => WARNING: ignoring the provided expectation message argument ({:with=>"0"}) since it is not a string or a proc.
以下代码(添加了input[name=ordered_quantity]
)都失败了,并给了我一个警告:
is_expected.to have_field('input[name=ordered_quantity]'), with: '0'
# => WARNING: ignoring the provided exptheectation message argument ({:with=>"0"}) since it is not a string or a proc.
页面上只出现一次ordered_quantity
,这就是我要测试的字段。
答案 0 :(得分:1)
尝试将with: '0'
置于have_field
方法内:
is_expected.to have_field('ordered_quantity', with: '0')