HippoBlog
Web開発に関する備忘録や
日々の雑記ブログ
  • #Ruby on Rails
  • 2020年11月21日
ENTRY TITLE

[rails] FactoryBotで、Factory not registered

TEXT BY @hippohack@hippohack
TEXT BY @hippohack@hippohack
  • このエントリーをはてなブックマークに追加

RSpecのテストコードを書いている際、FactoryBot.defineでモデルをNewする際の初期値を決めて楽できるということでかいてみていた際に Factory not registered って怒られた際のログ。

書いてたコード。

# spec/factories/categories.rb

FactoryBot.define do
  factory :category do
    name { "category_name" }
    slug { "category_slug" }
  end
end
  • category_spec.rbファイルを編集。
    • category = Category.new(name: "", slug: "fuga")
    • category = build(:category, name: "") にしたイメージ。

テスト実行。

# bundle exec rspec spec/models/category_spec.rb
FFF

Failures:

  1) Category name blankの時に invalidになる
     Failure/Error: category = build(:category, name: "")

     KeyError:
       Factory not registered: "category"

Factory not registered: "category" なるエラー。 どうも FactoryBot.define が動作してない。

まぁまぁハマった。

/spec/factories/以下は自動でロードしてくれるっていうしなんだろなーと。

で調べてる中で↓を見つけた。

img1

で、テスト実行。

# bundle exec rspec spec/models/category_spec.rb
...

Finished in 0.10593 seconds (files took 3.21 seconds to load)
3 examples, 0 failures

いけたー。


最後までお読みいただき、ありがとうございました。

ご意見などありましたら@hippohackへDMをお願いいたします。

  • このエントリーをはてなブックマークに追加