結論
spec_helper.rb
にrequire
を書く。
具体例
require を書く場所
require
を書く場所はspec_helper.rb
のどこでもいい*1のですが、私は一番下(end
の直前)に書きます。以下のようになります。
RSpec.configure do |config| (省略) require "#{File.join(File.dirname(__FILE__), '../foo/bar')}" require "#{File.join(File.dirname(__FILE__), '../hoge/fuga')}" end
File.dirname(__FILE__)
はspec_helper.rb
がある場所を指します。したがって上記の例ですとrequire
するファイルは以下の二つになります。.rspec
がある場所がルートディレクトリです。
foo/bar.rb
hoge/fuga.rb
require するファイルをまとめて指定する
require
するファイルを一つ一つ指定するのは DRY ではないので、まとめて指定することもできます。たとえば以下のように書きます。
RSpec.configure do |config| (省略) Dir[File.join(File.dirname(__FILE__), "../lib/**/*.rb")].each { |f| require f } end
上記の例ですと、lib/
配下の全ての.rbファイルがrequire
されます。全てのファイルがrequire
されますので、思わぬファイルまでrequire
されてしまう可能性には注意が必要です。
参考ページ(感謝!)
*1:RSpec.configure do |config| 〜 end 内