見出し画像

[output]サポートモジュール

結合テストでは、「ログインする」というステップを何度も記述した。
テストコードにおいても、繰り返し行う処理をメソッドとして切り離せる。
RSpecでは、サポートモジュールというものを利用して行う。

方法は、specディレクトリ以下にsupportディレクトリを作成。
そこに、.rbファイルを配置。
モジュール名とファイル名は同じにし、名前で何をしているかわかるようにする。

■spec
 ■suppor
  □sign_in_support.rb     #サインインのモジュールとわかる名前

■:ディレクトリ
□:ファイル


ファイルには、下記のように記述する。

module SignInSupport #モジュール名
 def sign_in(user)
   #テストコードから切り出したい、繰り返し行っている処理を記述
	  #今回の場合はサインインの処理をまるごと切り出し
 end
end


次は、設定したモジュールを使用できるようにする。
rails_helper.rbにて、下記記述のコメントアウトを外す。

Dir[Rails.root.join('spec', 'support', '**', '*.rb')].sort.each { |f| require f }

また、下記記述を加えて、作成したモジュールの読み込み設定をする。

〜略〜
RSpec.configure do |config|
 config.include SignInSupport #モジュール名
    〜略〜

最後に、切り出した処理部分を
定義したメソッド名に書き換える。

# ログインする
 sign_in(@user)