Com desenvolupar dirigit per testos

From Es1

Jump to: navigation, search

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
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.

Personal tools