RSpec : Matcher : Difference between ‘eq’ and ‘equal’ matchers

a.equal?(b) # object identity – a and b refer to the same object
a.eql?(b) # object equivalence – a and b have the same value
a == b # object equivalence – a and b have the same value with type conversions

a.should equal(b) # passes if a.equal?(b)
a.should eql(b) # passes if a.eql?(b)
a.should == b # passes if a == b

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s