我现在一直在努力改变测试。我得到了这个测试:
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没有抓住它们。我究竟做错了什么?我一直在使用括号表示法但没有成功。我很确定答案很简单,但我无法解决。
提前致谢!
答案 0 :(得分:0)
您需要重新加载office
,在office.reload
之后和patch
之前添加end
,以便您的对象注意到数据库中的更改并获取更新。