|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
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)? |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
On Jun 9, 7:35am, Mark Thomas <r...@thomaszone.com> 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 |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
> 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. |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
[Note: parts of this message were removed to make it a legal post.]
On Mon, Jun 9, 2008 at 11:54 AM, Mark Thomas <ruby@thomaszone.com> 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/ |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
On Jun 11, 6:31pm, Rick DeNatale <rick.denat...@gmail.com> wrote:
> > 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. 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? |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
[Note: parts of this message were removed to make it a legal post.]
On Thu, Jun 12, 2008 at 10:44 AM, Mark Thomas <ruby@thomaszone.com> wrote: > > 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? > > 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/ |
|
![]() |
| Outils de la discussion | |
|
|