[rspec] be_something accepts nils


#1

Hi

Just noticed that the behaviour of

@cow.should_not be_hungry

is not the same as

@cow.hungry?.should == false # nil also passes

Don’t know how this has escaped me for so long =)

What’s the thinking behind this? You can already do

@cow.hungry?.should(_not) be_nil

so surely it makes more sense for be_true and be_false to check for
booleans?

Ashley


http://www.patchspace.co.uk/
http://www.linkedin.com/in/ashleymoran


http://twitter.com/ashleymoran


#2

On Fri, Mar 13, 2009 at 5:17 AM, Ashley M. >

What’s the thinking behind this? You can already do

@cow.hungry?.should(_not) be_nil

so surely it makes more sense for be_true and be_false to check for
booleans?

In common Ruby use, nil is usually treated the same as false, so
that’s the way the dynamic matcher works - it’s the most convenent.

You see explicit comparisons against true or false pretty rarely (in
my experience). Unless you have a specific need for a three-valued
truth system (e.g., true, false, and unknown), I think it’s best
practice not to assume that if !x == true, then x must == false, and
vice versa.

///ark


#3

On 13 Mar 2009, at 15:42, Pat M. wrote:

@cow.hungry?.should == false # nil also passes
be_true and be_false do check for booleans :slight_smile: but you didn’t use
either of them.

The expanded form of
@cow.should_not be_hungry
is
@cow.hungry?.should_not be

Pat

Like yoda sounds, that does

Matt W.
http://blog.mattwynne.net
http://www.songkick.com


#4

On Mar 13, 2009, at 5:17 AM, Ashley M. wrote:

Don’t know how this has escaped me for so long =)

What’s the thinking behind this? You can already do

@cow.hungry?.should(_not) be_nil

so surely it makes more sense for be_true and be_false to check for
booleans?

be_true and be_false do check for booleans :slight_smile: but you didn’t use
either of them.

The expanded form of
@cow.should_not be_hungry
is
@cow.hungry?.should_not be

Pat


#5

On 13 Mar 2009, at 16:34, Matt W. wrote:

The expanded form of
@cow.should_not be_hungry
is
@cow.hungry?.should_not be

Pat

Like yoda sounds, that does

And enlightened, I am =)

Thanks Pat


http://www.patchspace.co.uk/
http://www.linkedin.com/in/ashleymoran


http://twitter.com/ashleymoran


#6

On 13 Mar 2009, at 16:34, Matt W. wrote:

Like yoda sounds, that does

Been implemented properly, it has :slight_smile:

http://blog.zenspider.com/2009/04/spec-yoda-will.html


http://www.patchspace.co.uk/
http://www.linkedin.com/in/ashleymoran


http://twitter.com/ashleymoran