В RSpec, какая разница между использованием should == ... и should eql(...)? Я заметил, что в документации RSpec всегда используется eql, но == меньше печатает и более легко читается. Что мне не хватает?
RSpec: разница между "should ==..." и "should eql (...)"
Ответ 1
Это довольно просто, действительно: should == отправляет сообщение == испытуемому, should eql отправляет сообщение eql? испытуемому. Другими словами: два разных теста отправляют два совершенно разных сообщения, которые вызывают два совершенно разных метода и, таким образом, делают две совершенно разные вещи. В частности, eql? более строгий, чем ==, но менее строгий, чем equals?.
Ответ 2
Они обычно эквивалентны, но не всегда:
1 == 1.0 # => true
1.eql? 1.0 # => false