DevEX - reference for building teams, processes, and platforms
Les Tests avec Ruby on Rails et RSpec (in French)
1. Les Tests avec Ruby on Rails
Jean-Michel Garnier <jean-michel arobase 21croissants point com>
Paris On Rails – 10 Décembre 2007
2. Plan de la présentation
Background
●
De 1975 ... à nos jours
–
Théorie
●
RSpec par l'exemple
–
Design, Spécifications, Documentation
–
Pratique
●
Outils: Autotest, rcov, CruiseControl.rb
–
RSpec on Rails, Selenium
–
2
Paris On Rail 2007 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
6. FRED BROOKS
1975:
“The Mythical Man-Month”
¼ Spécificier
●
1/6 Programmer
●
½ Tests
●
1986:
“No Silver Bullet”
Modèle en V =
Vers le Modèle Itératif
http://www.cs.unc.edu/~brooks/
8. KENT BECK
1994:
“Simple Smalltalk Testing”
●
Framework pour automatiser
les tests unitaires
2002:
“Test Driven Development”
Ecrire les tests avant le code
http://www.threeriversinstitute.org/Kent%20Beck.htm
10. MARTIN FOWLER
2000:
“Refactoring”
●
article sur l'Intégration
●
Continue
http://www.martinfowler.com
11. L'équipe de RSpec
Début 2004 : BDD
●
Août 2005: RSpec 0.1
●
Mai 2007: RSpec 1.0
●
30 250 downloads
●
Aslak Hellesøy (NO) David Chelimsky
(nº27) RubyForge
(US)
40 contributeurs
●
+ Brian Takita Dave Astels
Steve Baker Luke Redpath
Dan North (UK)
15. should I stay or should I go?
RSpec ajoute 2 méthodes à la class 'Object': should et
should_not
Avec Test::Unit :
Paris On Rail 2007 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
21. Tests = Design
TDD = On ne code que l'indispensable!
●
Le Refactoring (Améliorer le code) ne provoque pas de
●
regressions
Utilisation de “mocks objects” pour définir l'API
●
Le code de qualité est facile à tester
●
Paris On Rail 2007 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
23. Tests = Documentation
Exemples exécutable =
●
Documentation toujours á
jour
Plus besoin de rdoc ;-)
●
Paris On Rail 2007 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
29. Intégration Continue
http://cruisecontrolrb.thoughtworks.com
cruise add <name> -u <url>
cruise start
Le lapin il est ROUGE?
Le Build il est cassé!
http://nabaztag.rubyforge.org/
Paris On Rail 2007 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
37. Spécifier les Vues?
Problème:
Les vues changent
tout le temps !
Paris On Rail 2007 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
38. Exemple de spec/views
Paris On Rail 2007 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
39. Selenium
Tests d'intégration + automatiser les tests d'acceptation
●
des utilisateurs
Vérifier si l'application fonctionne avec tous les
●
butineurs du marché
Compatible avec:
●
Paris On Rail 2007 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.
40. Selenium – le film
Paris On Rail 2007 – Copyright (c) Garnier Jean-Michel. Licence: Creative Commons.