【问题标题】:Using assert_select to find a select box value?使用 assert_select 查找选择框值?
【发布时间】:2016-07-12 20:32:58
【问题描述】:

我正在努力测试我的选择框的值是否为 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

无论我将值更改为我的测试仍然通过,所以我在某个地方错了。

【问题讨论】:

    标签: ruby-on-rails ruby rspec


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2022-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-17
      • 2018-08-09
      • 2013-03-02
      • 2015-12-08
      • 2020-12-29
      相关资源
      最近更新 更多