Una de las buenas prácticas del desarrollo web que más cuesta a los programadores consiste en escribir pruebas unitarias. Como los programadores web normalmente no están acostumbrados a probar bien su trabajo, les surgen muchas dudas: ¿tengo que escribir las pruebas antes de programar la nueva funcionalidad? ¿qué debo probar? ¿las pruebas tienen que probar hasta los casos más extremos? ¿cómo puedo asegurarme de que estoy probando todo bien? Por suerte, la primera pregunta que se hacen es mucho más fácil: ¿por dónde empiezo?
Aunque somos completamente partidarios de las pruebas, la propuesta de Symfony es más pragmática: creemos que es mejor tener unas pocas pruebas a no tener ninguna. ¿Tienes un montón de código para el que no has creado pruebas? No pasa nada, ya que para disfrutar de las ventajas de las pruebas automáticas no es necesario disponer de pruebas para todas las funcionalidades de la aplicación.
Nuestra propuesta es que vayas añadiendo pruebas a medida que encuentres y soluciones errores en tu aplicación. Con el paso del tiempo tu código no sólo será mucho mejor, sino que cada vez será mayor el porcentaje de la aplicación que está cubierto por pruebas (técnicamente, este porcentaje se conoce como code coverage). Utilizar esta filosofía de trabajo, hará que ganes confianza al escribir las pruebas. En poco tiempo estarás escribiendo las pruebas para las nuevas funcionalidades de la aplicación y más tarde te convertirás en un apasionado de las pruebas.
El principal problema de las librerías para crear pruebas es que son bastante difíciles de aprender a manejar. Por este motivo Symfony incluye su propia librería para pruebas llamada lime y que simplifica al máximo la creación de pruebas.
Nota Aunque en este tutorial vamos a explicar detalladamente la librería lime, puedes utilizar cualquier otra librería de pruebas, como por ejemplo la excelente librería PHPUnit.