如果我想创建和实例使用“创建”构建策略然后想要使用“attributes_for”构建策略进行验证,是否可以这样做?如果我在工厂使用序列?机械师宝石有可能吗?
答案 0 :(得分:11)
不太确定我完全理解。而且我不是机械师的用户。但听起来你只想做这样的事情。
@attributes = FactoryGirl.attributes_for(:my_object)
my_object = MyObject.create(@attributes)
my_object.some_property.should == @attributes[:some_property]
答案 1 :(得分:1)
感谢这篇文章,只想添加该类是FactoryGirl
@user_attributes = FactoryGirl.attributes_for(:super_user)
答案 2 :(得分:1)
解决方案John Hinnegan建议是合理的,但您最好使用FactoryGirl.create
方法进行对象初始化,因为它通常会为您提供有效的对象。例如,如果您使用after(: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]