RSpec und Co.
Thomas R. Koll - 2009/10/20 ananasblau.com
Dienstag, 20. Oktober 2009
Motivation • • • • • •
Vertrauen und Sicherheit Besserer Code Visualisierung des gewünschten Ergebnis Kürzere Fehlersuche Fehler durch Abhängigkeiten sichtbarer Schnelleres Deployment
Dienstag, 20. Oktober 2009
Was testen? • • • • •
Nicht alles muss getestet werden Testen muss Spass machen Wechsel des Test-Setup tut weh Bei Plugins: Lieber das mit den Tests Lieber keine Mocks und Stubs
Dienstag, 20. Oktober 2009
Das Pflichtprogramm • • • •
Models: eigene Methoden, Filter,Validierung Controller: Assoziationen, Datensicherheit Views/Integrationtests Eigene Bibliotheken und Plugins
Dienstag, 20. Oktober 2009
Die Kür • • • • •
Continuous Testing: AutoTest oder ZenTest Continuous Integration: CruiseControl.rb Continuous Deployment für die Mutigen Test All The Fucking Time (see TATFT-guy) Bei User-Stories (cucumber): Immer Warum? fragen
Dienstag, 20. Oktober 2009
Die nötigen Schritte •
• • • •
gem install rspec rspec-rails thoughtbot-factory_girl
./script/generate
spec
Außerdem: rspec_controller, Testen mit rake für‘s Ego: rake
Dienstag, 20. Oktober 2009
spec
stats
rspec_model, rspec_scaffold
oder spec
spec/model/post_spec.rb
(1:1 ist super aber 1:0.7 tut‘s auch)
Ein Model
Dienstag, 20. Oktober 2009
mehr?
Dienstag, 20. Oktober 2009
Alles erst später...
Dienstag, 20. Oktober 2009
...ist auch ein Plan
Dienstag, 20. Oktober 2009
FactoryGirl? • • • •
Erstellt Objecte aus unseren Models Wiederverwendebar kein Mocking manchmal ist ein reload nötig
Dienstag, 20. Oktober 2009
Beispiele
Dienstag, 20. Oktober 2009
Weblinks • • • •
http://rspec.info/rails/writing/ http://github.com/thoughtbot/factory_girl http://cruisecontrolrb.thoughtworks.com/ Auch lesenswert: Test::Unit
Dienstag, 20. Oktober 2009