【发布时间】:2021-04-15 08:38:03
【问题描述】:
我的聊天应用有一个聊天类和一个消息类;当消息添加到聊天中时,chat.updated_at 也应该更新(通过belongs_to :chat, touch: true 实现)。
当我手动测试它时,它可以正常工作,时间会更新。但是,我在下面的测试失败了,我无法弄清楚原因。
test "sending a message should update chats updated timestamp" do
sign_in @user
assert_changes "@chat.updated_at" do
post messages_path(params: { message: {
text: 'Hello', to_id: @bob.id, chat_id: @chat.id
}})
assert_response :success
end
end
我只是得到错误@chat.updated_at 没有改变。
我的聊天工具是
one:
id: 1
subject: nil
updated_at: <%= 2.hours.ago %>
【问题讨论】:
-
你必须使用assert_changes吗?
-
有没有更好的方法来断言时间已更新?还是 assert_changes 在这里不起作用的原因?
标签: ruby-on-rails testing minitest