Nic*_*o77 5 rspec ruby-on-rails rspec-rails
运行我的rspec期望使用自定义验证器时出现此错误.
expect {@ua.save!}.to raise_error(ActiveRecord::RecordInvalid,'Validation failed: This question is no longer active')
Run Code Online (Sandbox Code Playgroud)
失败了
expected ActiveRecord::RecordInvalid with "Validation failed: This question is no longer active", got #<ActiveRecord::RecordInvalid: Validation failed: This question is no longer active.> with backtrace:
Run Code Online (Sandbox Code Playgroud)
这似乎只是我的自定义验证的问题.看到这个型号:
class UserAnswer < ActiveRecord::Base
belongs_to :user
belongs_to :question
validate :questionIsActive?
private
def questionIsActive?
errors.add(:base, "This question is no longer active.") if !self.question.is_active?
end
end
Run Code Online (Sandbox Code Playgroud)
使用:Rails 3.2.11 Rspec-rails 2.12.2
rai*_*inz 10
你有一个错字.在字符串中添加句点:
expect {@ua.save!}.to raise_error(ActiveRecord::RecordInvalid,'Validation failed: This question is no longer active.')
Run Code Online (Sandbox Code Playgroud)
注意:您目前符合您的期望:
'验证失败:此问题不再有效'
但需要:
"验证失败:此问题不再有效."
以便它与您的验证字符串匹配:
"这个问题不再活跃了."
| 归档时间: |
|
| 查看次数: |
8775 次 |
| 最近记录: |