Ejemplo de TDD: Implementando una pila (parte 1)

Siguiendo con los ejemplos que se han armado para el material del Proyecto Hogwarts, quiero hoy publicar un caso de uso de Test-Driven Development con Visual Studio 2008 y C#. Ya había publicado un ejemplo anterior con video en:


Un ejemplo de TDD


La idea es implementar una pila. Ya tenemos una implementación dentro del propio framework de .NET. Pero la idea acá es desarrollarla usando TDD. Para eso, planteamos una serie de test iniciales, a cumplir por nuestra implementación. Programar de esta forma, permite poner explícitamente cómo esperamos consumir al software que estamos construyendo. Al escribir los tests, estamos poniendo cómo queremos que se consuma y actúe nuestro objeto pila. En una pila, colocamos elementos, en este caso enteros, y los retiramos, con el criterio último entrado, primero salido.


Por simplicidad, hacia el final de este ejemplo, se implementó usando una pila interna de .NET. Pero podríamos haber implementado con una lista o de otra forma. Puede quedar el caso para un próximo refactoring. También se repitió código de inicialización: hay que estudiar cómo podemos mejorar esto. Y un tema para la próxima edición de este ciclo, es el uso de code coverage: cómo podemos conocer qué parte de nuestro código hemos probado.


[View:http://www.youtube.com/watch?v=d6JrhC1u2Dw]


Pueden verlo directamente en Youtube, más grande, en http://www.youtube.com/watch?v=d6JrhC1u2Dw y con opción a pantalla completa.


Espero que les sirva, cualquier “feedback” es bienvenido.


El código del ejemplo en TddStack01.zip.


Nos leemos!


Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

This entry was posted in 10549, 11699, 13620, 3463, 8115. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>