rails 独学して軽くにちゃんまとめつくる

インターン中大学生のブログ

ぐるぐる回って何をしたいのかが変わってく。今はマッチングサイトを作りたい、もしくは論文のキュレーションサイトかな。

rspec でログインのテストで"Invalid Email or password" というエラーがでた

残念ながら Rspec でテストをするときはローカル上で手入力したデータは使えないようだ。自分で FactoryGirl などを用いて作成する必要がある。それをテストを実行する前に let で作成する必要もある。

さらに fill_in などで入力するデータは let で作ったインスタンスの値として user.email とやって取り出す必要があるのだ。 これをベタ打ちで “foo@bar.com” とやってしまうとなぜかエラーが出てしまいます。注意してください。

FactoryGirl.define do
  factory :user do
    name  "mori"
    sequence(:email){ |n| "foo#{n}@bar.com" }
    password              "password"
    password_confirmation "password"
  end
end
require 'rails_helper'

feature 'User manager' do
  
  let(:user){FactoryGirl.create(:user)}
 
  #ログイン
  scenario "log in" do
    visit root_path
    click_link 'ログイン'
    fill_in "Email", with: user.email
    fill_in "Password", with: user.password
    click_button "Log in"
    visit root_path
    expect(page).to have_content "ログアウト"
  end
end