[rspec-users] "should_not ==" vs "should !="
rick.denatale at gmail.com
Sun Jan 20 23:57:46 EST 2008
On Jan 20, 2008 8:01 PM, Alex Satrapa <grail at goldweb.com.au> wrote:
> On 19/01/2008, at 17:36 , David Chelimsky wrote:
> > When you say 5 == 3, what that is really saying is 5.==(3), which is
> > how we're able to support 5.should == 3 (becomes 5.should.==(3)).
> Would it be true to say that the reason "5.should != 3" won't work is
> that somewhere inside Ruby the x != y comparison is remapped to !(x
> == y), and thus the "5.should != 3" is remapped to "not (5.should.==
> 3)", with rspec generating a failure when "should" sees false coming
> back from the "==" method?
> Or am I barking up the wrong tree and potentially misleading dozens
> of programmers down the garden path?
I'm 99 44/100% sure that you have it right. The expression x != y is
syntactic sugar for !(x == y) much like x += y is syntactic sugar for
x = (x +y)
The parser turns these into an internal representation (abstract
syntax tree for 1.8, byte-codes for 1.9) which is identical to the
My blog on Ruby
More information about the rspec-users