Rails rspec expects crashes for custom validations

I get this error when starting my rspec using special validators.

expect {@ua.save!}.to raise_error(ActiveRecord::RecordInvalid,'Validation failed: This question is no longer active') 

not working with

 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: 

This only seems to be a problem for my user checks. See This Model:

 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 

Usage: Rails 3.2.11 Rspec-rails 2.12.2

+4
source share
1 answer

You have a typo. Add a period to the line:

 expect {@ua.save!}.to raise_error(ActiveRecord::RecordInvalid,'Validation failed: This question is no longer active.') 

Note: you have pending:

'Verification failed: this question is no longer active

but you need:

'Verification failed: This question is no longer active.'

to match your check string:

'This question is no longer active.'

+8
source

All Articles