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.
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.
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)
be_truthy
is not the same as be true
. If you truly want to check that the value is true and not just truthy, then you should use expect(true).to be true
(note the lack of an underscore between be and true). Ref: relishapp.com/rspec/rspec-expectations/docs/built-in-matchers –
Customhouse be true
being not same as be_truthy
. But my answer and the OP's question was about be_true
(note the presence of an underscore) –
Alonso 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
git grep -l be_true | xargs sed -i 's/be_true/be_truthy/'
–
Keelung © 2022 - 2024 — McMap. All rights reserved.