質問: ### 前提・実現したいこと rspecのSystemSpec作成中、途中からfill.inが動かなくなりました。 ログインできるようにしたいです。 ### 発生している問題・エラーメッセージ ``` Failure/Error: expect(page).to have_content '作成' expected to find text "作成" in ``` ### 該当のソースコード 最後の新規作成機能だけfailureとなります。スクリーンショットを見てみると visit new_session_pathの通りにログイン画面に移った所で止まっています。 フォーム欄は空欄で、new_session_pathに作成というボタンはありません。 下のnew_question_pathに作成ボタンがありますがログインしていなければ遷移しません。 ``` require 'rails_helper' describe '問題管理機能', type: :system do let(:user_a) { FactoryBot.create(:user, name: 'ユーザーA', email: 'a@example.com') } let(:user_b) { FactoryBot.create(:user, name: 'ユーザーB', email: 'b@example.com') } let!(:question_a) { FactoryBot.create(:question, title: '最初の問題', user: user_a) } shared_examples_for 'ユーザーAが作成した問題が表示される' do it { expect(page).to have_content '最初の問題' } end describe '一覧表示機能' do context 'ユーザーAがログインしているとき' do let(:login_user) { user_a } before do visit new_session_path fill_in 'Eメール', with: 'login_user.email' fill_in 'パスワード', with: 'login_user.password' click_button 'ログイン' visit questions_path end it_behaves_like 'ユーザーAが作成した問題が表示される' end context 'ユーザーBがログインしているとき' do let(:login_user) { user_b } before do visit new_session_path fill_in 'Eメール', with: 'login_user.email' fill_in 'パスワード', with: 'login_user.password' click_button 'ログイン' visit questions_path end it_behaves_like 'ユーザーAが作成した問題が表示される' end end describe '詳細表示機能' do context 'ユーザーAがログインしているとき' do let(:login_user) { user_a } before do visit question_path(question_a) end it_behaves_like 'ユーザーAが作成した問題が表示される' end end describe '新規作成機能' do context 'ユーザーがログインしているとき' do let(:login_user) { user_a } let(:question_content) { '新規作成テスト' } before do visit new_session_path fill_in 'Eメール', with: 'login_user.email' fill_in 'パスワード', with: 'login_user.password' click_button 'ログイン' visit new_question_path end it '新規作成画面' do expect(page).to have_content '作成' end end end end ``` ### 試したこと 同じ書き方で一覧表示と詳細表示機能は動くので、何が原因かわかりません。 フォーム欄が空欄でnew_question_pathに移っていないのでfill_inが機能していないのだと思い、 idを指定してEメールの部分を変えたり、findとsetで指定してみたりしましたが結果は同じでした。 ### 補足情報(FW/ツールのバージョンなど) ruby 2.5.3 rails 5.2.3
回答: ログインに失敗してそうな気がします。 ``` fill_in 'Eメール', with: login_user.email fill_in 'パスワード', with: login_user.password ``` の間違いではないでしょうか?