0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

サポートモジュールでヘルパーメソッドの共通化

Posted at

事前準備

  • モジュールを扱うファイルの先頭に下記の記述をする
require "rails_helper" 
  • spec/rails_helper.rbの下記のコメントアウトを外す
# support配下にあるファイルを一つずつ読み込んでいる
Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }

# モジュールを作成して使う手順

  1. spec/support/[任意の名前]_support.rbのファイルを作成。今回は例として下記のモジュールを作成
module SignInSupport
  # OmniAuthの環境をテストに切り替えている今回は例として下記のモジュールを作成
  # OmniAuthをモック化してGitHubのレスポンスとして引数で指定した値を返す
  def sign_in_as(user)
    OmniAuth.config.test_mode = true
    OmniAuth.config.add_mock(
      user.provider,
      uid: user.id,
      info: { nickname: user.name,
              image: user.image_url }
    )

    visit root_path
    click_on "GitHubでログイン"
  end

  def current_user
    @current_user
  end
end

2. 作成したモジュールを使うためのincludeをspec/rails_helper.rに下記のように書くことでrails_helper.rbを読み込んだすべてのファイルで使えるようになります。


Rspec.configure do |config|
  config.include SignInSupport
end

spec別にモジュールをincludeしてもよい(下記)

# (例)spec/system/〇〇_spec.rb
RSpec.feature 'Home', type: :system do
  include SignInSupport
end
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?