gpt4 book ai didi

ruby-on-rails - rails rspec 测试模型上的更新属性

转载 作者:数据小太阳 更新时间:2023-10-29 07:20:48 27 4
gpt4 key购买 nike

我有一个名为 Reminder 的非常简单的模型,其 bool 属性为 verified 我想测试我的方法 update_verifiedverified 属性设置为 true。我正在使用 rspec 和 factory girl。

# reminder.rb
def update_verified
self.update(verified: true)
end

# reminder_spec.rb
describe "#update_verified" do
it "should mark the reminder.verified to true" do
reminder = build(:reminder, verified: false)
reminder.update_verified

expect(reminder.verified).to eq(true)
end
end

出于某种原因,当我运行测试时,属性 verified 的新值 true 没有被保留。但是,当我在控制台中运行该方法时,它工作正常。想法?

  1) Reminder#update_verified should mark the reminder.verified to true
Failure/Error: expect(reminder.verified).to eq(true)

expected: true
got: false

(compared using ==)
# ./spec/models/reminder_spec.rb:46:in `block (3 levels) in <top (required)>'

Finished in 0.19193 seconds (files took 7.07 seconds to load)

最佳答案

你只需要重新加载你的对象:

expect(reminder.reload.verified).to eq(true)

关于ruby-on-rails - rails rspec 测试模型上的更新属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38164857/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com