使用capybara选择另一个字段中的单选按钮值?

时间:2018-06-04 15:23:48

标签: ruby-on-rails capybara integration-testing

我在Rails中编写了multiple choice quiz game。我正在尝试编写一个集成测试,点击测验,选择正确的答案。以下是我的观点:

<h2>The word is: <%= @question %> <br> </h2>
<h2>Your score is <%= session[:score] %> </h2>
<h2><%= @questions_remaining %> questions left!</h2>
    <% answers = @quiz_words.shuffle %>
      <%= form_tag("answer", method: "get") do %>
        <%= radio_button_tag(:answer, "#{answers.first.id}")%><%= answers.first.definition %><br>
        <%= radio_button_tag(:answer, "#{answers.second.id}")%><%= answers.second.definition %><br>
        <%= radio_button_tag(:answer, "#{answers.third.id}")%><%= answers.third.definition %><br>
        <%= radio_button_tag(:answer, "#{answers.fourth.id}")%><%= answers.fourth.definition %> <br>
        <%= hidden_field_tag :orig,  "#{@quiz_words.first.id}" %>
        <%= submit_tag("Submit") %>
      <% end %>
<%= link_to 'Back to Index', root_path %> <br>

正确的答案是在html来源中生成的隐藏字段ID =&#39; orig&#39;以价值为答案。

我希望Capybara查找隐藏字段及其值(&#34; 13&#34;),然后在下一步中,选择与隐藏字段具有相同值的单选按钮。这是生成的html源代码

enter image description here

我是Capybara的新手,并且无法找到它是否可以查看它的文档。

  • 这是否可能,如果有的话,有人可以告诉我该怎么做或者指向我的文档吗?

  • 这是测试测验功能的最佳方法吗?或者我会以另一种方式更好地测试它? (单元测试?)

2 个答案:

答案 0 :(得分:1)

是的,这是可能的,您可能希望在此处使用集成测试。

  1. Find隐藏的输入
  2. 获取value
  3. Choose收音机,其中包含在步骤2中返回的值。

答案 1 :(得分:1)

这里唯一稍微复杂的是你要查找一个不可见的元素,你可以使用visible: false选项。

orig_value = find('#orig', visible: false).value
choose(option: orig_value)