2010-07-19 3 views
10

Dans RSpec, quelle est la différence entre l'utilisation de should == ... et should eql(...)? J'ai remarqué que la documentation RSpec utilise toujours eql, mais == est moins typé et plus facile à lire. Qu'est-ce que je rate?RSpec: différence entre "should == ..." et "should eql (...)"

+1

http://batsov.com/articles/2011/11/28/ruby-tip-number-1-demystifying-the-difference-between-equals-equals-and-eql/ – Kris

Répondre

16

Il est assez simple, vraiment: should == envoie le message == au sujet de test, should eql envoie le message eql? au sujet de test. En d'autres termes: les deux tests différents envoient deux messages complètement différents qui invoquent deux méthodes complètement différentes et font donc deux choses complètement différentes. En particulier, eql? est plus stricte que == mais moins stricte que equals?.

15

Ils sont généralement équivalents, mais pas toujours:

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

touche ... touche. .. –

Questions connexes