RSpec:“should == ...”和“should eql(...)”之间的区别

时间:2010-07-19 21:21:52

标签: ruby testing rspec

在RSpec中,使用should == ...should eql(...)之间的区别是什么?我注意到RSpec文档始终使用eql,但==输入较少且更易于阅读。我错过了什么?

2 个答案:

答案 0 :(得分:16)

这很简单,实际上:should ====消息发送给测试主题,should eqleql?消息发送给测试主题。换句话说:两个不同的测试发送两个完全不同的消息,这两个消息调用两个完全不同的方法,从而做两个完全不同的事情。特别是,eql?==更严格,但不如equals?严格。

答案 1 :(得分:15)

它们通常是等价的,但并非总是如此:

1 ==   1.0 # => true
1.eql? 1.0 # => false