Rails 5アプリケーション用のRSpec Capybaraテストを作成しています。私のアプリケーションは、HTMLとCSSを書く方法を学ぶ学生のためのものです。アプリケーションは「テスト」オブジェクトを作成し、ユーザーがテストを実行できるようにします。ユーザーが質問に正しく回答するたびに、アプリはテストオブジェクトの「スコア」属性に追加されます。最後に、アプリケーションはユーザーに最終スコアを与え、テスト結果を記録します。要素が見つからないため、Capybaraテストが失敗する
ボタンを見つけることができないため、私のカピバラテストに失敗しました。私のアプリの仕組みによって、ユーザーは質問に答えて「送信」ボタンをクリックします。回答を提出すると、「次の質問」と表示される[SECOND]ボタンが表示されます。
私のテストでは2番目のボタンが見つかりません。私はテストの専門家ではなく、助けを借りることができます。私は "スリープ5"を試みたが、うまくいかなかった。
1) 失敗/エラー不正解でテストを受けて:ここで
にエラーがある。ここclick_button '次へ質問'
Capybara::ElementNotFound:
Unable to find button "Next Question"
# ./spec/features/taking_test_spec.rb:12:in `block (2 levels) in <top (required)>'
は私のテストで:
ここrequire 'rails_helper'
feature "taking test" do
scenario "with incorrect answers" do
visit '/'
click_link "HTML Test"
click_button "Start"
fill_in "answer", with: '<p>'
click_button 'Submit'
sleep 5
click_button 'Next Question'
expect(page).to have_content('CSS helps you control the appearance of HTML elements.')
end
end
テストのためのコントローラの関連部分です:
ここでは3210はquestion1するための図でカピバラを見つけることができないボタンを含め、次のとおりです。あなたのNext Question
がボタンではありません
<div class="container-fluid">
<div class="row background-white">
<div class="col-md-8 col-md-push-2 score_container">
<h5 class="text-center">Current Score: <%= @test.score %></h5>
</div>
<div class="col-sm-6 col-sm-push-3 col-xs-10 col-xs-push-1 question_container">
<div class="form_group">
<%= form_tag question1_path(@test), method: :get do %>
<h5>1. How do you write an opening paragraph tag in HTML?</h5>
<div class="form-group">
<%= text_area_tag :answer, params[:answer], class: 'form-control', id: 'answer' %>
</div>
<% if !flash[:success] && !flash[:danger] %>
<div class="form-group">
<%= submit_tag "Submit", class: "btn btn-primary" %>
</div>
<% end %>
<% end %>
</div>
<% if flash[:success] || flash[:danger] %>
<%= link_to "Next Question", question2_path(@test), class:"btn btn-success pull-right" %>
<% end %>
</div>
</div>
</div>
私はそれを試みました。ありがとうございました! –