システムスペック

導入

以下追加

Gemfile
gem 'webdrivers' #ChromeDriverのインストールを簡単にしてくれる?
  gem 'capybara' #E2ETest(UIテスト)のためのrubyフレームワーク
spec/spec_helper.rb
require 'capybara/rspec'

rails g rspec:system tasksでシステムスペックファイルの作成

ドライバ設定

ドライバとは、Capybaraを使ったテスト/Specにおいて、ブラウザ相当の機能を利用するために必要なプログラム

spec/support/capybara.rb
RSpec.configure do |config|
  config.before(:each, type: :system)do
    driven_by(:selenium_chrome_headless)
  end

ログイン前・ログイン後に分けてテストを実施するので、モジュールにログイン処理を設定

spec/support/login_macros.rb
module LoginModule
  def login(user)
    visit login_path
    fill_in 'Email', with: user.email
    fill_in 'Password', with: 'password'
    click_button 'Login'
  end
end

spec/rails_helper.rbで読み込み

config.include LoginMacros

rails_helper.rbを読み込むために、各Specファイルに、require 'rails_helper'を設定

spec/support以下を読み込むように設定

コメントアウトを外す
Dir[Rails.root.join('spec', 'support', '*', '.rb')].sort.each { |f| require f }を追記

システムスペックファイルの設定をする 長いので省略