Capybaraでログイン処理をシミュレートしてテスト – RSpec
/spec/rails_helper.rb
require 'capybara/rspec' #追加
require 'capybara/rails' #追加
Capybara.default_driver = :selenium_chrome #追加 #headlessモードを使う場合は:selenium_chrome_headless
#追加ここから #chromedriverを登録
Capybara.register_driver :selenium_chrome do |app|
Capybara::Selenium::Driver.new(app, browser: :chrome)
end
#追加ここまで
#追加ここから #chromeのheadlessモードを登録(ブラウザ起動なし)
Capybara.register_driver :selenium_chrome_headless do |app|
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('headless')
options.add_argument('--disable-gpu')
Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
end
#追加ここまで
/spec/features/sample_spec.rb
require "rails_helper"
feature "ユーザーがログインできること" do
background do
# ユーザを作成する
User.create(name: "a@gmail.com",
email: "a@gmail.com",
password: "a@gmail.com",
password_confirmation: "a@gmail.com",
activated: true,
activated_at: Time.zone.now)
end
scenario 'ログインする' do
# トップページを開く
visit users_path
# ログインフォームにEmailとパスワードを入力する
fill_in "Email", with: "a@gmail.com"
fill_in "Password", with: "a@gmail.com"
# ログインボタンをクリックする
click_on 'Log in'
# ログインに成功したことを検証する
expect(page).to have_selector 'i', text: 'my_mind'
end
end
参考
qiita.com
404 Not Found - Qiita - Qiita
blog.halclan.net
9 Users
https://blog.halclan.net/entry/2015/11/17/210904