In an old version of rspec, you could do “x.should_be < y”, but this
throws a NoMethodError now. What’s the proper way to test inequalities
(less than/greater than)?
On Jun 9, 7:35 am, Mark T. [email protected] wrote:
In an old version of rspec, you could do “x.should_be < y”, but this
throws a NoMethodError now. What’s the proper way to test inequalities
(less than/greater than)?
It’s basically the same:
x.should be < y
James
It’s basically the same:
x.should be < y
James
Thanks! Is this syntactic sugar for all be_xxx methods? I just noticed
that I can omit the underscore in be_true also. I’m surprised I
haven’t noticed that in examples.
On Mon, Jun 9, 2008 at 11:54 AM, Mark T. [email protected]
wrote:
It’s basically the same:
x.should be < y
James
Thanks! Is this syntactic sugar for all be_xxx methods?
No.
1.should be > 0
will work, but say:
1.should be_false > 0
will fail when RSpec tries to send #:0? to 1. One might say that this is
an
rspec bug, but I’d say that 1.should be_false > 0 is nonsensical, so who
cares.
I just noticed
that I can omit the underscore in be_true also. I’m surprised I
haven’t noticed that in examples.
This is because
x.should be y
is interpreted as
x.should eql y
so it will succeed if x.eql?(y) returns a truthy value.
Also note that there’s a difference between
x.should be_true
or
x.should be true
or
x.should eql true
and
x.should be
The first three will succeed only iff x == true whereas the latter will
succeed iff x is any truthy value (i.e. anything except nil and false),
likewise
x.should_not be
will succeed iff x is a falsy value (i.e. nil or false)
–
Rick DeNatale
My blog on Ruby
http://talklikeaduck.denhaven2.com/
On Thu, Jun 12, 2008 at 10:44 AM, Mark T. [email protected]
wrote:
item.should be valid?
I don’t think that would work. But I think you could use the rather
Yoda
like:
item.valid?.should be
–
Rick DeNatale
My blog on Ruby
http://talklikeaduck.denhaven2.com/
On Jun 11, 6:31 pm, Rick DeNatale [email protected] wrote:
rspec bug, but I’d say that 1.should be_false > 0 is nonsensical, so who
cares.
Actually, what I meant is can
item.should be_valid
be replaced with
item.should be valid
but now that I think about it, rspec probably does some method_missing
magic with the be_ prefix and wouldn’t know to use #valid? with the
question mark. Maybe the equivalent is
item.should be valid?