「サインイン」ボタンをクリックして正しいページが読み込まれているかどうか確認したいと思います。ボタンをクリックした後のページコンテンツの確認方法は?
users_spec.rb
before :each do
user = User.create(:email => '[email protected]', :password => '123')
end
it "signs me in" do
visit '/users/sign_in'
within("#new_user") do
fill_in 'Email', :with => '[email protected]'
fill_in 'Password', :with => '123'
click_button 'Sign in'
end
expect(page).to have_content '#{user.name}'
end
have_content .TO 'ダッシュボード' のチェックを(ページ)を期待するフォームが配置され、同じページ上のuser.name単語があります。ですから、click_buttonの意味は何ですか? click_buttonの後に読み込むべきページのコンテンツをチェックする方法ちなみに、そのようなテストの名前を正しく指定する方法は? 申し訳ありませんが、愚かな質問の場合、私はrspecで初心者です:c
ありがとう!
メッセージにduscがあっても、私はexpect(page).to have_content( "あなたは今ログインしています")というテストをパスしません。しかし、sign_inフォームがあるコンテンツからsmthを調べるだけでテストは合格になります。それは必ずしもuser.nameに関するものではありません。サインイン後にページに 'Hello'がある場合、sign_inフォームがあるページにこの単語がない場合、expect(page)。have_content( "Hello")は渡されません。それは問題です、なぜ私はボタンが参照するページで動作しない場合、または私は間違っているsmthを行っています( – Jakov
あなたが何か間違っている - 私はアプリが実際にはないボタンをクリックしたときにログインする、または次のページにあるテキストをチェックしていない - テストログに実際のリクエストが表示されるはずです。rspecとcapybaraを初めて使用しているので、 JSのサポートを持たないラックテストドライバ - JSが無効になっているかJSが動作する必要がある場合にあなたのアプリケーションは実際にログインしますか?もしそうなら、Capybarasのドライバを使用する必要があります –