技術ネタ

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

参考

https://qiita.com/jnchito/items/607f956263c38a5fec24

https://qiita.com/at-946/items/69cae85d0f93bf5cedca

https://qiita.com/jnchito/items/607f956263c38a5fec24

https://qiita.com/kidach1/items/b0e607c83e9da9380d7e

https://blog.halclan.net/entry/2015/11/17/210904

 

-技術ネタ

Copyright© off , 2020 All Rights Reserved Powered by AFFINGER5.