6

「create」ビルド戦略を使用して作成およびインスタンス化し、検証のために「attributes_for」ビルド戦略を使用したい場合、それは可能ですか? 工場でシーケンスを使用する場合はどうなりますか? Machinist gemで可能ですか?

4

3 に答える 3

11

私が完全に理解しているかどうかはよくわかりません。そして、私は機械工のユーザーではありません。しかし、あなたはこのようなことをしたいだけのようです。

@attributes = FactoryGirl.attributes_for(:my_object)
my_object = MyObject.create(@attributes)
my_object.some_property.should == @attributes[:some_property]
于 2011-03-06T03:04:47.473 に答える
2

John Hinneganが提案する解決策は適切FactoryGirl.createですが、通常は有効なオブジェクトが得られるため、オブジェクトの初期化にはこのメソッドを使用することをお勧めします。たとえば、を使用すると、 aafter(:create)は呼び出されませんMyObject.new

@attributes = FactoryGirl.attributes_for(:my_object)
my_object = FactoryGirl.create(:my_object, @attributes)
expect(my_object.some_property).to eq @attributes[:some_property]
于 2015-02-07T14:20:29.783 に答える
1

この投稿をありがとう、クラスがFactoryGirlであることを追加したかっただけです

@user_attributes = FactoryGirl.attributes_for(:super_user)
于 2013-03-13T17:40:06.517 に答える