1

为什么当我使用 FactoryGirl 创建记录并稍后更新该记录时 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 那么它们不是同一个对象吗?

4

1 回答 1

2

我想你可能需要改变

expect(foo.bar).to eq(true)

expect(foo.reload.bar).to eq(true)

顺便说一句,您可能想了解be_true

expect(foo.reload.bar).to be_true
于 2013-02-07T19:16:08.960 回答