当我使用FactoryGirl创建记录并稍后更新所述记录时,工厂女孩实例未更新?例如,如果我有以下工厂和rspec测试:
factory :foo do
bar false
end
在rspec测试中:
foo = FactoryGirl.create(:foo)
Foo.first.update_attribute(:bar, true)
expect(foo.bar).to eq(true) #foo.bar is false and will fail
如果我将最后一行中的foo.bar
更改为Foo.first.bar
,那么为什么会出现差异? FactoryGirl实例是否与记录没有直接关联?执行测试expect(foo).to eq(Foo.first)
返回true,那么它们不是同一个对象吗?
答案 0 :(得分:2)
我认为你可能需要改变
expect(foo.bar).to eq(true)
到
expect(foo.reload.bar).to eq(true)
顺便说一下,您可能想了解be_true
:
expect(foo.reload.bar).to be_true