Ich entwickle eine Rails App, und ich habe gerade mit meinem Kollegen gesprochen, dass wir eine Mischung aus Fixtures und Mocks in unseren Tests haben, die wir mit Gurke und Rspec machen. Die Frage wäre: Wann sollte jeder benutzt werden?Rails Fixtures vs. Mocks
Antwort
Ich würde ein Mock-Objekt verwenden, wenn die Verwendung des realen Objekts nicht praktikabel/nicht notwendig ist. Nehmen wir zum Beispiel an, dass Sie eine entfernte API wie einen Adressfinder über die Postleitzahl anrufen müssen. Sie möchten das Objekt wahrscheinlich überspotten, damit die Aufrufe nicht jedes Mal ausgeführt werden, wenn Sie Ihre Tests ausführen. Es gibt auch andere Gründe, wie die Geschwindigkeit zu verbessern, nach Daten zu fragen, die sich ändern, wo Sie eine genaue Antwort benötigen, oder vielleicht gibt es sie noch nicht. Es ermöglicht Ihnen, Dinge isoliert zu testen, da Sie feststellen können, dass Sie diese Methoden zurückbekommen, wenn Sie diese Methoden für dieses Mock-Objekt aufrufen. Sie müssen den Code nicht wirklich ausführen, da dieser Test nicht wichtig ist.
Wenn Sie Fixtures verwenden, haben Sie ein reales Objekt und die Methoden usw. werden aufgerufen und ihr Code wird ausgeführt, es sei denn natürlich, Sie stub die Methoden aus, was für eine andere Frage ist.
Hoffe, dass hilft ein wenig. Es gibt einen guten Peepcode (http://peepcode.com/products/rspec-mocks-and-models) auf Spott und Stubbing, vielleicht überprüfen Sie es.
danke. Du hast es sehr deutlich erklärt. – Anand
- 1. Rails Fixtures vs Samen
- 2. Rails Tests, Fixtures & Class loading order
- 3. Loading ActiveRecord Fixtures mit RSpec ohne Rails
- 4. Rails Fixtures laden nicht mit rspec
- 5. Fixtures in RSpec
- 6. Können Fixtures Objekte von anderen Fixtures "kopieren"?
- 7. Django Football Fixtures
- 8. Rails Rake MySql Autoincrement Problem w db: Fixtures: load
- 9. Beschriftete Fixtures für Assoziationen in Rails 3 gebrochen
- 10. Warum ignoriert Rails die Strings in meinen Fixtures nicht korrekt?
- 11. Rails 4 Test-Upload-Datei mit Fixtures (.yml) und Büroklammer
- 12. Rails: Act_as_tagable_on vs Rocket_tag
- 13. Symfony2, Wie man Fixtures mit --fixtures Option lädt?
- 14. Angular2 vs Rails Api vs Facebook Auth
- 15. link_to vs url_for vs Pfad in Rails
- 16. Kontrollkästchen in Rails 1 vs. Rails 2
- 17. Doktrin Migrationen Re. Fixtures
- 18. django fixtures DateTimeField runtimeWarning
- 19. Django Fixtures für Berechtigungen
- 20. android test fixtures
- 21. Wiederverwendbare Komponenten und Fixtures in Golang Tests
- 22. Rhino Mocks Stubs und Mocks sind nur gut für Schnittstellen?
- 23. rails-observers vs wisper gem
- 24. Rails: cache.fetch vs cache.read/write
- 25. Rails Counter Cache vs Berechnung
- 26. Ubuntu vs FreeBSD und Rails
- 27. Restful Rails Edit vs Update
- 28. Ruby on Rails vs. Django
- 29. Node.js vs Ruby on Rails
- 30. Rails Paperclip: update vs. update_attributes
Art von Off-Thema, aber eine wirklich nette Alternative zu den Geräten ist factory_girl (kann Seite an Seite mit Fixtures auch verwendet werden) http://github.com/thoughtbot/factory_girl#readme und hier ist eine Railscast über Nutzung http://railscasts.com/episodes/158-factories-not-fixtures – house9