Rspec和capybara选择了价值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rspec和capybara选择了价值相关的知识,希望对你有一定的参考价值。
我想断言,如果某些选择具有特定值而不是文本。如果我通过文本断言,这是有效的:
it 'should be true' do
should have_select("country", :selected => 'Brazil')
end
我的选择html是这样的:
<select name="user[country]" id="country">
<option value="BR">Brazil</option>
...
</select>
我想断言页面是否有选择值的选择,我该怎么做?
答案
我不相信有一个内置匹配器用于按值检查选择列表。
但是,您可以使用value
方法获取选择列表的值(即选定选项的值):
find(:css, 'select#country').value
您可以使用expect语法将其与期望值进行比较:
expect( find(:css, 'select#country').value ).to eq('BR')
或者使用should语法:
find(:css, 'select#country').value.should == 'BR'
另一答案
或者,如果您希望远离CSS选择器:
find_field("country").value.must_equal "BR"
这假设您为此字段country
命名标签。
另一答案
在较新版本的RSpec和Capybara中,您可以使用have_select
。
expect(page).to have_select("Time of day", text: "8:30 AM")
以上是关于Rspec和capybara选择了价值的主要内容,如果未能解决你的问题,请参考以下文章
Rspec/Capybara 正在加载,循环要求被认为是有害的
rspec 和 capybara 带有关于使用 4.8.2 的 QT 警告,但安装了 qt5
清理测试数据库,仅使用RSPEC和Capybara运行测试生成的数据