No mundo do rubi, o TDD é facilitado por ferramentas incorporadas na estrutura. O Factory Girl, o Mocha, o rSpec e outros permitem que os desenvolvedores criem testes de maneira fácil e dinâmica que atendam aos casos de teste necessários.
Também fiquei frustrado com a falta de ferramentas TDD no Drupal. Meu maior problema com eles é a quantidade de tempo que leva para executar um único teste. Os ciclos de desenvolvimento não podem ser mais lentos por testes individuais, levando de 60 a 90 segundos a cada iteração. Os conjuntos de testes completos seriam executados no período de várias horas, se você se importasse em escrever os testes.
Eu suspeito que isso esteja relacionado à cópia de um banco de dados completo toda vez que um teste for executado, mas isso provavelmente não mudará no futuro próximo do que posso dizer, especialmente se você precisar usar o DrupalWebTestCase para fazer isso.
Estou criando uma solução usando Phactory e phpunit, que inicializam o Drupal manualmente. Obviamente, encontrei alguns problemas e ainda não o terminei, mas está chegando lá.
Felizmente, a maior parte do meu trabalho está na camada de back-end, para que eu possa permanecer no nível DRUPAL_BOOTSTRAP_DATABASE. Mas estou correndo para mais situações em que precisarei da pilha completa.
No final, o TDD no Drupal não é bem suportado; portanto, você pode escrever o seu próprio para fazê-lo funcionar fora da estrutura de teste do drupal ou suportar o baixo desempenho.
- ATUALIZAÇÃO -
Eu configurei com sucesso uma integração completa do Drupal com o Phactory e agora estou executando meus testes via phpunit em vez do Drupal Web Test Case. Então é possível.
Espero chegar a um ponto em que posso liberá-lo e ele pode ser incorporado ao documento Phactory.
- ATUALIZAÇÃO 2 -
Doc sobre como eu configuro o Phactory está em https://github.com/trimbletodd/phactory .