タイトル通り、現在フィーチャースペックを書いて走らせているのですが、どうも問題が解決しません。原因は特定できているのですが、その解決方法がわかりません。以下は、現状や考えられる原因を記載しております。もし、解決策をご存知の方がおられましたら、ご教授いただけますと幸いです。
###テストの処理
rb
1require 'rails_helper' 2 3feature "New organization" do 4 scenario "add a new organization" do 5 visit new_organization_path #グループ登録ページ 6 fill_in 'session_name', with: '新しいグループ' 7 click_on 'Create' 8 9 visit root_path #登録グループの求人一覧ページ 10 expect(page).to have_selector '.group_name', text: "新しいグループ" 11 end 12end
発生しているエラー
terminal
1Failure/Error: expect(page).to have_selector '.group_name', text: "新しいグループ" 2 expected to find css ".group_name" but there were no matches
###追記:原因は判明しました!(解決方法はわかりません)
#RecruitmentInfosController def index @organization = Organization.select("name") @recruitment_infos = RecruitmentInfo.where(group: @organization) end
以前は、「@organization => []」で失敗していましたが、これの原因は以下のバリデーションでした。
ruby
1class Organization < ApplicationRecord 2 def undefinde_organization_name 3 errors.add(:name, 'この団体の求人情報はありません') unless RecruitmentInfo.find_by(group: name) 4 end 5end
そしてこのバリデーションが失敗する原因は、**「RecruitmentInfo=>[]」**であることでした。
つまり、RecruitmentInfoモデル自体に、テーブルが全く無い状態でした。。。
ここにはスクレイピングで取得した情報を格納しているのですが、テスト環境のDBには全く入っていないようです。ということは、**「テスト環境で開発環境のDBに接続する方法」もしくは、「rails r 'RecruitmentInfo'」のようにして、テスト環境でスクレイピングを実行し、テスト環境のDBに格納する方法」**が分かれば解決できるのかと思います。引き続き必死でその方法を探していますが、ご存知であればご教授いただけますと幸いです。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/09 00:23