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へお願いいたします。

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