Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

expected true to respond to true?

I upgraded my rspec-rails to 3.0.1 and now I'm seeing this error on all of my tests

 Failure/Error: Sidekiq::Status::complete?(json.jid).should be_true
  expected true to respond to `true?`

I can't find the solution nor what I'm missing.

like image 315
Luiz E. Avatar asked Jun 06 '14 12:06

Luiz E.


2 Answers

From rspec 3.0, be_true is renamed to be_truthy and be_false to be_falsey

The behavior has not changed. So

(nil).should be_falsey
(false).should be_falsey

will pass, and

(anything other than nil or false).should be_truthy

will also pass

From the changelog 3.0.0.beta1 / 2013-11-07

Rename be_true and be_false to be_truthy and be_falsey. (Sam Phippen)

like image 89
Santhosh Avatar answered Nov 09 '22 01:11

Santhosh


To not to rewrite lot of existing specs, you can add this to spec_helper (it harms my sense of harmony but saves time):

def true.true?
  true
end

def true.false?
  false
end

def false.true?
  false
end

def false.false?
  true
end
like image 41
sergeych Avatar answered Nov 09 '22 01:11

sergeych