【发布时间】:2013-12-20 16:52:37
【问题描述】:
我正在使用 devise 和 cucumber 进行一个 RoR 项目,我遇到了一个我不太了解的有趣问题。我正在编写集成测试(黄瓜步骤)来测试设计并确保我将来所做的任何事情都不会破坏它,并且我发现了一些奇怪的行为:
在测试中,以下代码不起作用:
@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 工作,如何稍微清理一下这段代码?
【问题讨论】:
标签: ruby-on-rails activerecord devise cucumber integration-testing