Desenvolupament d'Aplicacions

Tests i Test Driven Development

Refactoritzant codi sempre corres el risc de canviar alguna cosa que no hagis de modificar, per distracció de no fixar-te en algun cas límit o per qualsevol altre motiu. D'aquest canvi neix un error i depèn del límit que sigui la situació errònia pots trigar mesos a adonar-te de l'error.

Tests i Test Driven Development

Com solucionar errors de refactorització?

Els tests ens ajuden a verificar codi. Hi ha diversos tipus, per exemple un test per comprovar que certa funció retorna una dada del tipus adequat, o un test que comprovi que tot un flux de treball és correcte, per exemple si envio un GET a '/posts' obtindré un llistat amb els 5 últims posts i cadascun d'ells contindrà el seu títol, el resum i el nom de l'autor.

El primer mira que un codi concret funciona com està previst, el segon és agnòstic quant a codi, és igual com retorni el llistat, només ens interessa que aquest llistat existeixi.

Podrem usar el primer tipus en casos molt crítics i el segon en casos més generals, però com podem utilitzar els dos alhora no descartarem un així sense cap motiu de pes.

Tornant a refactorizar, podem escriure els tests adequats per a tot el que fa l'aplicació, aquí és crucial verificar tots els casos, tant els més "normals" com els casos més límits.

Això ens portarà bastant temps, però ens assegurarem que després de refactorizar obtindrem una aplicació molt robusta.

Ara pensem en una aplicació nova, de moment és només una carpeta buida en el nostre ordinador.

Seria genial anar fent els tests a mesura que programem, així quan arribi el moment de refactorizar tindrem la càrrega més important de treball realitzada.

Què passa si fem els tests abans de programar? Fer els tests és fàcil, són només unes poques línies, després en executar-ho veurem que dóna errors i aquests errors els podem utilitzar perquè ens vagin guiant a l'hora de programar, d'aquí el concepte Test Driven Development (TDD).

Per exemple, podem crear un test que obtingui els últims 5 posts. Quan anem a '/posts' obtinguem els 5 últims posts, el test és bàsicament crear els 5 posts i visitar la url. Ens trobem amb que no podem crear posts perquè en la nostra aplicació (recordem que està buida) no existeix el concepte de 'post'. Ho creem. El següent error és que si visitem '/posts' rebem un 404, crearem la pàgina. El següent és que en '/posts' no hi ha posts, els crearem. Ara el test dóna 'verd' (quan phpunit, per exemple, no troba errors pinta un missatge en aquest color). És hora de pensar i fer el següent test i de programar el necessari perquè funcioni a mesura que l'error del test ens indiqui.

Comparteix aquest article

Articles Relacionats