In RSpec, qual è la differenza tra l'utilizzo di should == ...
e should eql(...)
? Ho notato che la documentazione di RSpec utilizza sempre eql
, ma ==
è meno digitante e più facile da leggere. Cosa mi manca?RSpec: differenza tra "dovrebbe == ..." e "dovrebbe eql (...)"
10
A
risposta
16
è piuttosto semplice, in realtà: should ==
invia il messaggio ==
alla prova soggetto, should eql
invia il messaggio eql?
alla prova soggetto. In altre parole: i due test diversi inviano due messaggi completamente diversi che invocano due metodi completamente diversi e quindi fanno due cose completamente diverse. In particolare, eql?
è più rigido di ==
ma meno rigido di equals?
.
15
Essi sono di solito equivalenti, ma non sempre:
1 == 1.0 # => true
1.eql? 1.0 # => false
+0
touche ... touche. .. –
Problemi correlati
- 1. Differenza Elasticsearch tra MUST e DOVREBBE query bool
- 2. Rspec: dovrebbe essere (questo o quello)
- 3. Rspec dovrebbe cambiare il conteggio senza lambda
- 4. Cosa getter e setter dovrebbe e non dovrebbe fare
- 5. Che cosa dovrebbe servire Apache e cosa dovrebbe servire Tomcat?
- 6. Cosa dovrebbe essere OO e cosa non dovrebbe?
- 7. Che cosa è esattamente la parola "dovrebbe" in RSpec Rubino
- 8. RSpec dovrebbe avere_link non riesce nonostante esistano collegamenti
- 9. La separazione tra API e Implementazione dovrebbe essere totale?
- 10. Quando dovrebbe essere una classe .NET Override()? Quando non dovrebbe?
- 11. Qual è la differenza tra equal e eql in Chai Library
- 12. Qual è la differenza tra eq, eql, equal e equalp, in Common Lisp?
- 13. Quando si dovrebbe usare Page.DataBind() contro Control.DataBind()?
- 14. Cosa dovrebbe essere hadoop.tmp.dir?
- 15. Dove dovrebbe essere Android.mk?
- 16. Perché qualcuno dovrebbe utilizzare Collections.emptyList in java?
- 17. dovrebbe essere chiuso Class.getResourceAstream?
- 18. dovrebbe ExecutorService essere statico e globale
- 19. : before e background-image ... dovrebbe funzionare?
- 20. Qual è la differenza tra RSpec e Cucumber?
- 21. RSpec qual è la differenza tra essere nullo e be_nil
- 22. Qual è la differenza tra finto e mock_model in RSpec
- 23. Qual è la differenza tra stub_model e mock_model in RSpec?
- 24. Cosa dovrebbe e non dovrebbe essere in un file di intestazione Erlang (.hrl)?
- 25. Differenza tra oggetto e *?
- 26. Questo bug dovrebbe essere risolto?
- 27. Come dovrebbe funzionare la sottostringa()?
- 28. Dovrebbe essere std :: atomic volatile?
- 29. FBSDKShareDialog annulla quando dovrebbe inviare
- 30. Dovrebbe int a, f() compilare {}?
http://batsov.com/articles/2011/11/28/ruby-tip-number-1-demystifying-the-difference-between-equals-equals-and-eql/ – Kris