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

nic*_*des 10 ruby testing rspec

在RSpec中,使用should == ...和有should eql(...)什么区别?我注意到RSpec文档总是使用eql,但==输入更少,更容易阅读.我错过了什么?

Jör*_*tag 16

这很简单,真的:should ====消息发送给测试对象,should eqleql?消息发送给测试对象.换句话说:两个不同的测试发送两个完全不同的消息,它们调用两个完全不同的方法,从而做两个完全不同的事情.特别是,eql?==严格要严格但不严格equals?.


Mar*_*une 15

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

1 ==   1.0 # => true
1.eql? 1.0 # => false
Run Code Online (Sandbox Code Playgroud)