Sie sind auf Seite 1von 13

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, rspec_model, rspec_scaffold

• Testen mit rake spec oder spec spec/model/post_spec.rb

• für‘s Ego: rake stats (1:1 ist super aber 1:0.7 tut‘s auch)

Dienstag, 20. Oktober 2009


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