My kemenworld…

To mock or not to mock…

BDD y PHP

Posted by kementeus en febrero 14, 2008

Como muchos sabran PHP es un lenguaje al cual le tengo cariño, bueno, quizás más cariño del que debiera, en gran parte porque fue de mis primeros lenguajes que use exclusivamente para desarrollo web (yep, también puede servir para otras cosas que no sean web, sino revisen mis pocos post de PHP), y aunque ahora PHP es sumamente popular muchos siguen desarrollando de una forma algo “extraña” en PHP, total, digamos que le tengo cariño y punto.

Desde hace muchísimo tiempo soy fanático del desarrollo ágil, me considero a mi mismo agilista y fanático de muchas tendencias que “hasta ahora” estan de moda en muchos circulos de desarrollo, en .Net en general es fácil ser absorvido por prácticas como TDD, BDD, DDD (muchas siglas va?), refactoring, prefactoring, y muchas otras que en realidad le hacen la vida más fácil y placentera al desarrollador, he notado con el transcurso del tiempo que algo extraño sucede en la mayoría de los desarrolladores de PHP y es como que siguen pensando en PHP como “aquel lenguaje web que me hace hacer las cosas rápido sin preocuparme por formalismos”, bien tampoco estoy para hablar de eso hoy (solo queria desahogarme :P).

Una de esas técnicas ya muy usada es BDD, Behavior Driven Development, se trata, en resumen, de un paso más general en la forma de ver el testing de una aplicación, basandose en historias y especificaciones de software. Siempre me había preguntado como crear “Specs” en PHP hasta que hace unos días me topo con el siguiente post http://devzone.zend.com/article/3082-Designing-Klingon-Warships-Using-Behaviour-Driven-Development

Ojo, se basa en el uso de PHPSpec y no de PHPUnit, que aunque se ha publicado posee una extensión para la descripción de historias y especificaciones (http://sebastian-bergmann.de/archives/738-Support-for-BDD-and-Stories-in-PHPUnit-3.3.html) no lo considero una herramienta BDD como tal, sino un simple wrapper y extensión para la definición de especificaciones (sino fíjense en los ejemplos y vean la diferencia entre los dos). Algo interesante acerca de ambas implementaciones es el uso de Fluent Programming para especificar los test, estoy feliz de ver como se ha propagado la programación fluída últimamente😀 (del cual también me hice fan desde que leí el articulo de M. Fowler).

Una forma de iniciar con BDD es usando FIT (se menciona bastante en el artículo), en PHP conozco solamente una extensión para el uso de FIT, esta en PEAR por supuesto😛 se trata de Testing_FIT

Bueno, lean el artículo y me cuentan que tal les va😀

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: