我正在與設計和黃瓜RoR項目工作,我遇到了一個有趣的問題,我不明白。我正在編寫集成測試(黃瓜步驟)來測試設計,並確保我將來不會做任何事情,並且我發現了一些奇怪的行爲:Rails集成測試實例變量方法不工作?
在測試中,以下代碼不起作用:
@user = FactoryGirl.create(:user)
@user.lock_access!
expect(@user.access_locked?).to be_true
它改爲返回false。但是,這並不工作:
expect(User.find(@user.id).access_locked?).to be_true
所以,出於某種原因,實例變量不正確的信息,但是當我從數據庫中提取,它是正確的。我猜測這實際上是ActiveRecord的正確行爲,但我不完全明白爲什麼。
有人可以解釋爲什麼這是?如果有一種方法或一些可用於使@user
工作的方法,如何清理這些代碼?