En el mundo del rubí, TDD se ve facilitado por las herramientas integradas en el marco. Factory Girl, Mocha, rSpec y otros permiten a los desarrolladores crear fácilmente y dinámicamente pruebas que aborden los casos de prueba necesarios.
También me ha frustrado la falta de herramientas TDD en Drupal. Mi mayor problema con ellos es la cantidad de tiempo que lleva ejecutar una sola prueba. Los ciclos de desarrollo no se pueden ralentizar mediante pruebas individuales que tardan entre 60 y 90 segundos en cada iteración. Los conjuntos de pruebas completos se ejecutarían en el marco de tiempo de varias horas, si se molesta en escribir las pruebas.
Sospecho que tiene que ver con copiar una base de datos completa cada vez que se ejecuta una prueba, pero no es probable que cambie en el futuro cercano de lo que puedo decir, especialmente si necesita usar DrupalWebTestCase para hacerlo.
Estoy pirateando una solución usando Phactory y phpunit, que inicia Drupal manualmente. Obviamente se encuentra con algunos problemas y no lo he terminado, pero está llegando allí.
Afortunadamente, la mayor parte de mi trabajo está en la capa de fondo, por lo que puedo permanecer en el nivel DRUPAL_BOOTSTRAP_DATABASE. Pero me encuentro con más situaciones en las que necesitaré la pila completa.
Al final, TDD en Drupal no está bien soportado, por lo que puede escribir el suyo propio para que funcione fuera del marco de prueba de drupal o soportar el bajo rendimiento.
- ACTUALIZACIÓN -
He configurado con éxito una integración completa de Drupal con Phactory, y ahora estoy ejecutando mis pruebas a través de phpunit en lugar del caso de prueba web de Drupal. Entonces es posible.
Espero llegar a un punto en el que pueda liberarlo y que pueda incorporarse al documento de Phactory.
- ACTUALIZACIÓN 2 -
Doc sobre cómo configuro Phactory está en https://github.com/trimbletodd/phactory .