6

FactoryGirlの最新リリースでは、のようないくつかの構文上の方法は、Factory.create他のいくつか、特にFactoryGirl.createより単純なものを優先して減価償却されましたcreate

ただし、経験上、コンテキストを考えると、特定の構文が常に適切であるとは限りません。

たとえば、次のようにします。

FactoryGirl.define do

  factory :article do
    after_create {|a| a.comments << create(:comment) }
  end

  factory :comment do
  end

end

Article has_many Comments、およびCommentsbelongs_toArticle。上記の工場でa.comments << create(:comment)は、エラーを発行しますComment(#nnn) expected, got FactoryGirl::Declaration::Static。その行をに変更するa.comments << FactoryGirl.create(:comment)と、エラーはなくなります。

ある構文が他の形式よりも優先される場合は明確ではありません。

4

2 に答える 2

1

FactoryGirl のドキュメントに従って、create や build などのメソッドを呼び出すときに FactoryGirl モジュールのプレフィックスを省略したい場合は、次のように rspec/test-unit モジュールに FactoryGirl メソッドを混在させる必要があります。

# rspec
RSpec.configure do |config|
  config.include FactoryGirl::Syntax::Methods
end
于 2012-04-28T16:01:41.183 に答える