FactoryGirl の新しいインタフェースに移行したときのメモ

えいっと新しい FactoryGirl に移行して、新しいインタフェースに対応してみた。どう移行したかは GETTEING_STARTED.md を読んでその通りに定義部分と利用部分を修正した。詳細は省く。

……が、こんな感じのエラーに悩む。

....../ruby-1.9.2-p290/gems/factory_girl-2.1.2/lib/factory_girl/registry.rb:38:in `add_as': Already defined: user (FactoryGirl::DuplicateDefinitionError)

多重定義と言っているが、特に複数個定義していない。

  • 古いインタフェースが混じってたのでそれを統一したり
  • factory の継承をやめてみたり
  • alias をやめてみたり

してみたがダメで仕方なくソースまで潜る。DIVE TO THE NIGHT.

結論としては、 spec_helper.rb で spec/factories を require していた行があったので、削除して解決した。

require Rails.root.join("spec/factories.rb")

FactoryGirl は factories ファイルを load するので注意なのだな。