Question RSpec: différence entre “should ==…” et “devrait eql (…)”


En RSpec, quelle est la différence entre utiliser 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?


10
2017-07-19 21:21


origine


Réponses:


C'est plutôt simple, vraiment: should == envoie le == message au sujet du test, should eql envoie le eql? message au sujet du 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 strict que == mais moins strict que equals?.


16
2017-07-20 07:31



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

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

15
2017-07-19 21:41