Behat sobre pepino en PHP
gherkin (2)
No me malinterpretes Creo que ambos proyectos son fantásticos.
Pero como desarrollador de php y ruby me pregunto si hay alguna razón convincente, además de la posible barrera del idioma, por qué elegiría Behat sobre Cucumber (con cuke4php ) para BDD incluso cuando se trabaja con php o algún framework php.
Otra razón por la que puede necesitar Behat se explica aquí: https://cucumber.io/blog/2014/09/10/when-cucumbers-go-bad
Si tiene un proyecto PHP, es posible que desee crear un contexto para las pruebas internas (capa de dominio, capa de aplicación).
Soy un desarrollador de Behat.
Por qué he desarrollado Behat en lugar de la personalización del pepino:
- Velocidad. No hay una forma sencilla de arrancar / ejecutar PHP desde el código de Ruby. Esto significa que necesita implementar cables / proxies y otras cosas, lo que hace que sus pruebas sean increíblemente más lentas. Y las pruebas más lentas no son una prueba, es solo el código que se come el dinero de su cliente.
- Extensibilidad. Hay muy pocos desarrolladores de PHP que realmente conocen a Ruby. Es una herramienta difícil de usar, que muchos no entienden. Todos los ejemplos escritos para Cucumber son códigos Ruby e incluso no puedes mirar las fuentes de Cucumber porque, digamos, no conoces a Ruby. Es como comprar un submarino cuando solo necesitas un taxi.
En términos de características, Behat y Cucumber son casi iguales (he trabajado duro para lograrlo). Pero en términos de velocidad / extensibilidad / lógica desde la perspectiva de un desarrollador de PHP, Behat es mejor, porque es una herramienta nativa de PHP rápida y limpia. Behat no es un puerto de pepino, como podría pensar antes, está construido completamente desde PHP 5.3. Behat está intentando simular Cucumber con su lectura de entrada (características) y formato de salida (formateadores), pero no es un puerto de Pepino (no hay construcciones de sintaxis de Ruby en PHP).