the industrial

都内で働くITエンジニアの日記

FactoryBotが「Failure/Error: config.include FactoryBot::Syntax::Methods」で読み込めなかった話

Rails4からRails5にアップデートをする際、重要ロジックのテストを書いていないことに気づいた。

そこで、改めてRSpecを使おうと思いいろいろ調べている中で、テストデータ作成ツールに FactoryBot を利用することに。

しかし、いくら試せど下記のようなエラーが・・・。

Failure/Error: config.include FactoryBot::Syntax::Methods

NameError:
  uninitialized constant FactoryBot
# ./spec/rails_helper.rb:63:in `block in <top (required)>'
# ./spec/rails_helper.rb:33:in `<top (required)>'
# ./spec/services/xxxxxxs/xxxxxx_service_spec.rb:1:in `require'
# ./spec/services/xxxxxxs/xxxxxx_service_spec.rb:1:in `<top (required)>'
No examples found.


Finished in 0.00052 seconds (files took 12.32 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples

原因は、Gemfileの定義で下記に様にしていたから笑

group :development do
  # テスト関連
  gem "rspec-rails"        # rspec本体
  gem "factory_bot_rails" # テストデータ作成
end

rails_helper.rbでは

ENV['RAILS_ENV'] ||= 'test'

としているため

group :test do
  # テスト関連
  gem "rspec-rails"        # rspec本体
  gem "factory_bot_rails" # テストデータ作成
end

が正解。

しょぼいことでハマって疲れた笑