Ruby on Railsで作っているアプリのテストで質問させてください。
【起きている問題】
Rspecを使ったテストを書いています。
新規作成画面で、タスクモデルに関連づけたラベルのcheckboxをクリックしたいのですが、エラーが出て、テストがうまくいきません。
【確認したこと】
・エラー画面のキャプチャを確認すると、'label1'のcheckbox自体は表示されています。
・ElementNotFoundというエラーが出現してチェックできない状態です(エラーメッセージの詳細はMarkdownで下に書きました)
・「check 'label1'」という記述が違っているのではないかと思って公式ページなどで確認してみましたが間違っているようにも見えません
https://rubydoc.info/github/jnicklas/capybara/master/Capybara%2FNode%2FActions:check
質問しなれていないのですが、必要と思われるコードを下記に記しました。
考えられる原因がありましたらご教授いただければ幸いです。
#app/views/tasks/_form.html.erb 新規入力画面でラベルのチェックボックスを表示するコード <% Label.all.each do |label| %> <%= form.check_box :label_ids, { multiple: true, checked: label[:checked], disabled: label[:disabled], include_hidden: false }, label[:id] %> <%= label.name %> <% end %>
#spec/system/task_spec.rb タスクの新規作成画面でラベルをチェックすると詳細画面にチェックしたラベルが表示される describe 'ラベル機能' do before do FactoryBot.create(:label) end context 'タスク作成画面でラベルを選択すると' do it '詳細画面に選択したラベルが表示される' do visit new_task_path fill_in 'task_task_name', with: 'テスト' (中略) check "label1" click_on '登録する' click_on '詳細' expect(page).to have_content "label1" end end end
#ラベルを作成するfactoryBot FactoryBot.define do factory :label do name { "label1" } end end
#表示されるエラー Failure/Error: check "label1" Capybara::ElementNotFound: Unable to find checkbox "label1" that is not disabled
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。