我正在尝试测试,以便用户不能发送消息给自己。目前,在我的新消息视图中,我有一个选择框,它可以选择除current_user之外的系统中的所有用户。目前,我只有一个测试,不允许用户选择自己从选择框收件人:Rails rspec测试用户发送消息给自己的用户
it { should_not have_select(:receiver_id, :options => [user.name]) }
然而,这是一个足以考验?我是否需要测试创建一条新消息,将receiver_id设置为current_user的id并检查它?如果是这样,我将该规范放在模型或请求中?
编辑(在消息模型添加验证方法,但我的RSpec的,如果我注释掉验证线通过偶数):
编辑2(试验为错误哈希值不合格):
Message.rb:
validate :validate_sender_receiver
def validate_sender_receiver
if self.receiver_id == self.sender_id
errors.add(:receiver_id, "Cannot send message to self")
end
end
messages_spec.rb
我做了上面的更改,但我不确定是否正确吗? – yeenow123