我正在嘗試測試,以便用戶不能發送消息給自己。目前,在我的新消息視圖中,我有一個選擇框,它可以選擇除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