fv17の日記 - Coding Every Day

Webエンジニアの備忘用ブログです。主にWeb界隈の技術に関して書いています。

Rspec - NoMethodError: undefined method `create' でエラーとなってしまいFactoryが適切に動かない

「Everyday Rails - RSpecによるRailsテスト入門」で学んだまま実装しても、Factoryが適切に動かなかった。実際には、既存コードに引っ張られ、学んだ通りに実装していなかったというオチ。

事象

Rspecの実行において、下記の通りfactoryのcreateで落ちる。

スペックのコード

product = create(:product)

エラー内容

NoMethodError:
       undefined method `create' for #<RSpec::ExampleGroups::Products:0000000000000>

原因

「Everyday Rails - RSpecによるRailsテスト入門」では、createの前にFactoryBotを必ず付けている。

product = FactoryBot.create(:product)

これで動くようになる。

product = create(:product)

としたい場合には、rails_helper.rbの一番最後に下記を加えれば良い。

config.include FactoryGirl::Syntax::Methods