我正在努力测试我的选择框的值是否为6。
<form class="edit_line_item" id="edit_line_item_7" action="/line_items/7" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓"><input type="hidden" name="_method" value="patch">
<select name="line_item[quantity]" id="line_item_quantity"><option selected="selected" value="1">1</option>
</select>
</form>
我的rspec代码
assert_select "select#line_item_quantity", value: 6
无论我改变什么,我的测试值仍然通过,所以我错了。
答案 0 :(得分:1)
要以这种方式使用assert_select
,你必须传递一个块并对传递给块的元素数组执行断言。
assert_select
是“一个选择元素并进行一个或多个相等测试的断言”
示例:
assert_select "ol" do |elements|
elements.each do |element|
assert_select element, "li", 4
end
end
您需要调整此示例以根据所选元素中的选项标记的value
属性进行断言(在这种情况下为select
标记)。
我建议您阅读文档:http://apidock.com/rails/v2.3.8/ActionController/Assertions/SelectorAssertions/assert_select
如果你使用的是水豚,你可以使用have_select
。在这里回答:https://stackoverflow.com/a/18622979/156746