Académique Documents
Professionnel Documents
Culture Documents
Curso: Ingeniera de Software II. Tema: TDD en java. Profesor: Ing. Mario Aquino Cruz.
En TDD deben seguirse estos tres pasos y en este orden: 1. 2. 3. Hacer un test automtico de prueba, ejecutarlo y ver que falla. Hacer el cdigo mnimo imprescindible para que el test que acabamos de escribir pase. Arreglar el cdigo, sobre todo, para evitar cosas duplicadas en el mismo. Comprobar que los test sigue pasando correctamente despus de haber arreglado el cdigo.
Estos tres pasos deben repetirse una y otra vez hasta que la aplicacin est terminada. Vamos a ver con un poco de detalle qu implica cada uno de estos tres pasos. Por supuesto, con un ejemplo tonto. Supongamos que queremos una clase Matematicas con un mtodo esttico que hace una suma y nos devuelve el resultado.
Lo primero que deberamos ver es que el test ni siquiera compila. No existe la clase Matematicas y, por supuesto, no tiene el mtodo suma(). Y esta es la primera ventaja de TDD. Nos ha obligado a pensar exactamente qu queremos que haga nuestra aplicacin desde fuera de ella. Necesitamos una clase que tenga un mtodo suma() con dos parmetros que nos devuelva el resultado de la suma. Este caso es muy trivial, pero cualquiera que haya programado un poco en serio, sabr que muchas veces no sabemos exactamente qu clases hacer o qu mtodos ponerle exactamente. Es ms, muchas veces perdemos el tiempo haciendo mtodos que pensamos que luego sern tiles, cuando la cruda realidad es que muchas veces no se van a usar nunca. Con TDD slo hacemos lo que realmente necesitamos en ese momento.
4. Hacer el cdigo mnimo imprescindible para que el test pase. Para que el test pase, lo primero que hay que crear es la clase Matematicas y ponerle el mtodo suma(), que debe devolver algo, cualquier entero, para que al menos compile.
Luego compilamos. Ya compila el test y la clase, pero si ejecutamos el test, fallar, ya que el mtodo devuelve 0 y no 5.
Corregimos la clase de la forma ms inmediata posible para que pase el test. Y lo ms inmediato es hacer que devuelva 5.
Nuevamente compilamos. Ya est. Todo funciona como debe. Obviamente, poner return 5 no es la solucin correcta y en un caso real tan simple, pondramos directamente return a+b. Pero de momento, djame ponerlo as para poder explicar el siguiente pas.
5. Rehacer el cdigo. El tercer paso es arreglar el cdigo. Debemos arreglar sobre todo duplicidades. A veces, estas duplicidades son evidentes (por ejemplo, cdigo repetido), pero otras, como en este caso, no son tan evidentes. Qu hay repetido en este cdigo? Aparentemente nada, pero pensemos un poco. De dnde sale ese 5? Lo hemos puesto porque mentalmente hemos hecho la suma 2+3 y sabemos que ese es el resultado. Si no lo hubiramos hecho, habramos puesto return 2+3. Y esa es precisamente la duplicidad. El nmero 2 est repetido en el cdigo: en nuestra clase de test y en nuestra clase Matematicas. Lo mismo con el 3. Podemos eliminar esa duplicidad implementando la solucin obvia:
Finalmente terminamos y para comprobar que est bien compilamos, dando el siguiente resultado.
Bueno, este caso es demasiado simple y en un caso real no haramos tantos pasos para algo tan evidente.