Используя капибару, чтобы выбрать значение переключателя, которое находится в другом поле? - PullRequest
0 голосов
/ 04 июня 2018

У меня есть игра с несколькими вариантами ответов , написанная на Rails.Я пытаюсь написать интеграционный тест, который просматривает тест, выбирая правильные ответы.Вот мое мнение:

<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 = 'orig' со значением в качестве ответа.

Я хочу, чтобы Капибара искала скрытое поле и его значение («13»), затем на следующем шаге выберите переключатель, значение которого совпадает со значением скрытого поля.Вот источник HTML, который генерируется

enter image description here

Я новичок в Капибара и не смог найти, если это возможно, глядя черезDocs.

  • Возможно ли это, если да, может ли кто-нибудь показать мне, как это сделать, или указать мне документы для этого?

  • Это лучший способ проверить функциональность теста?или мне лучше проверить это по-другому?(юнит-тесты?)

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Единственная немного сложная вещь здесь - это то, что вы хотите найти невидимый элемент, что вы можете сделать с помощью опции visible: false.

orig_value = find('#orig', visible: false).value
choose(option: orig_value)
0 голосов
/ 04 июня 2018

Да, это возможно, и вы, вероятно, захотите использовать здесь интеграционный тест.

  1. Найти скрытый ввод
  2. Получить его значение
  3. Выберите радиоприемник со значением, возвращенным на шаге 2.
...