RSpec: разница между "should == ..." и "should eql (...)" - PullRequest
10 голосов
/ 20 июля 2010

В RSpec, в чем разница между использованием should == ... и should eql(...)?Я заметил, что в документации RSpec всегда используется eql, но == менее печатается и легче для чтения.Чего мне не хватает?

Ответы [ 2 ]

16 голосов
/ 20 июля 2010

Это довольно просто, на самом деле: should == отправляет сообщение == субъекту теста, should eql отправляет сообщение eql? субъекту теста. Другими словами: два разных теста отправляют два совершенно разных сообщения, которые вызывают два совершенно разных метода и, таким образом, делают две совершенно разные вещи. В частности, eql? является более строгим, чем ==, но менее строгим, чем equals?.

15 голосов
/ 20 июля 2010

Они обычно эквивалентны, но не всегда:

1 ==   1.0 # => true
1.eql? 1.0 # => false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...