今回は記述場所を間違えるという非常に初歩的なミスが原因でしたが、他の方の記事を見ても、どこかしらで記述ミスしていることが多いという印象を受けました。
同じようなエラーで詰まっている方の参考になれば幸いです。
やりたいこと
rspecによるテストの実行。
Failure/Error: config.include FactoryBot::Syntax::MethodsとNameError:uninitialized constant FactoryBotの解決。
やったこと
ターミナルでbundle exec rspecを実行すると、下記のエラーが発生した。
エラー内容
An error occurred while loading rails_helper.
Failure/Error: config.include FactoryBot::Syntax::Methods
NameError:
uninitialized constant FactoryBot
# ./spec/spec_helper.rb:19:in `block in <top (required)>'
# ./spec/spec_helper.rb:18:in `<top (required)>'
# ./spec/rails_helper.rb:4:in `require'
# ./spec/rails_helper.rb:4:in `<top (required)>'
エラーの原因
初歩的すぎるが、config.include FactoryBot::Syntax::Methodsを記述する場所を間違っていた。
具体的には下記が原因で間違えました。
rspecをインストールすると、spec_helper.rbとrails_helper.rbが作成される。
config.include FactoryBot::Syntax::Methodsはrails_helper.rbファイルのRSpec.configure do |config|の下部に追記する。
RSpec.configure do |config|という記述がspec_helper.rbとrails_helper.rbの両方に存在することに気づかず、spec_helper.rbの方に追記してしまった。
解決策
rails_helper.rbのRSpec.configure do |config|下に追記する。
RSpec.configure do |config|
config.include FactoryBot::Syntax::Methods
(中略)
end
学んだこと
今回のミスはただ記述する場所を間違えたという初歩的すぎるものだが、たったこれだけでエラー解決に時間を取られてしまうため、どこのファイルに記述するか・スペルミスはないかなどケアレスミスに注意して開発を進める。