在factory_girl中有没有办法获取attributes_for并为同一个实例元素创建?

时间:2010-11-30 19:52:03

标签: ruby factory factory-bot machinist

如果我想创建和实例使用“创建”构建策略然后想要使用“attributes_for”构建策略进行验证,是否可以这样做?如果我在工厂使用序列?机械师宝石有可能吗?

3 个答案:

答案 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]