RSpec 'change' 看不出区别
RSpec 'change' can't spot a difference
我已经为变更测试苦苦挣扎了一段时间。我得到了这个测试:
let(:office) { create(:office) }
...
it "toggles products free attribute", :focus do
expect do
patch :toggle_free, product_ids: [office.id]
end.to change(office, :free).to(1)
end
我确切地知道代码有效。我在它之前和之后在控制台中打印#free,但#change 没有捕捉到它们。我究竟做错了什么?我也一直在使用括号表示法但没有成功。我很确定答案很简单,但我无法解决它。
提前致谢!
您需要重新加载 office
,在 patch
之后和 end
之前添加一个 office.reload
,以便您的对象注意到数据库中的更改并得到更新。
我已经为变更测试苦苦挣扎了一段时间。我得到了这个测试:
let(:office) { create(:office) }
...
it "toggles products free attribute", :focus do
expect do
patch :toggle_free, product_ids: [office.id]
end.to change(office, :free).to(1)
end
我确切地知道代码有效。我在它之前和之后在控制台中打印#free,但#change 没有捕捉到它们。我究竟做错了什么?我也一直在使用括号表示法但没有成功。我很确定答案很简单,但我无法解决它。
提前致谢!
您需要重新加载 office
,在 patch
之后和 end
之前添加一个 office.reload
,以便您的对象注意到数据库中的更改并得到更新。