[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)