Com desenvolupar dirigit per testos
From Es1
Les practiques de programació (a partir de la B1) heu de fer commit a cada punt del cicle red-green-refactor:
Aixo vol dir que heu de fer:
- Red:
- Plantejar un test (descomentar-ho a la B1, implementar-ho a les següents)
- Fer que compili (afegir la interface buida que calgui)
- Fer que falli (si la interface buida no falla canviar la implementacio perque falli)
- Commit al subversion
El fet d'escriure primer el test unitari fa que penseu en la interfície de l'objecte abans d'implementar-la. Quan feu que compili separeu els errors de compilació degut a interfície incorrecta dels errors de compilació de la implementació. Serà més fàcil identificar els errors. El mes important: Fent que falli el test esteu comprovant que el test funciona. Una forma rapida de testejar el test.
- Green:
- Fer que passi ràpidament, fent trampes a la implementacio si cal.
- Commit al subversion
Fer trampes vol dir fer la implementacio mes tonta que pasa el test. Per exemple, si espera un string 'Un titol' retornar aquest string sense fer servir cap atribut de l'objecte. Les trampes s'arreglen amb el refactor, o a la seguent iteracio, si implica afegir funcionalitat, es a dir, si puc escriure un test que m'obligui a arreglar-la.
- Refactor:
- Repetir fins que el codi estigui preparat per la següent iteracio:
- Canvi petit que arregla un xic el codi sense trencar els testos ni afegir funcionalitat
- Commit al subversion
- Repetir fins que el codi estigui preparat per la següent iteracio:
Els refactorings son petits canvis al codi que no modifiquen el que fa pero que el fan mes correcte. Si havieu retornat un string, aqui haurieu de crear la variable membre, modificar-la on cal i retornar-la.
Si feu els commits com us diem, podreu tirar enrera quan:
- Plantejant el test feu fallar mes d'un test
- La implementacio del green es complica massa i es vol tornar a comencar
- La implementacio del green fa trencar mes d'un test
- Algun refactoring trenca els testos
Si heu comencat a fer-ho sense fer commits. Tireu enrera i feu-lo amb commits. Suposo que us enrecordareu dels passos que heu fet. Si no, rao de mes per tirar enrera.