RSpec: be_true does not actually check if a value is true

Updated . Posted . Visible to the public. Deprecated.

be_true and be_false were removed form RSpec 3.

Don't use be_true to check if a value is true. It actually checks if it anything other than nil or false. That's why it has been renamed to be_truthy in recent RSpec versions Show archive.org snapshot .

The same thing holds for be_false, which actually checks if a value is not "truthy".

If you want to check for true or false in RSpec 2, write this instead:

value.should == true
value.should == false

If you want to check for true or false in RSpec 3+, write this instead:

expect(value).to eq(true)
expect(value).to eq(false)

See also

RSpec claims nil to be false

Henning Koch
Last edit
Michael Leimstädtner
License
Source code in this card is licensed under the MIT License.
Posted by Henning Koch to makandra dev (2016-01-28 10:38)