Nel mondo ruby, TDD è facilitato da strumenti integrati nel framework. Factory Girl, Mocha, rSpec e altri consentono agli sviluppatori di creare test facili e dinamici per affrontare i casi di test necessari.
Sono stato anche frustrato dalla mancanza di strumenti TDD in Drupal. Il mio più grande problema con loro è la quantità di tempo necessaria per eseguire un singolo test. I cicli di sviluppo non possono essere rallentati da test individuali che richiedono 60-90 secondi per ogni iterazione. Le suite complete di test verrebbero eseguite nell'arco di più ore, se ti preoccupi di scrivere i test.
Ho il sospetto che abbia a che fare con la copia di un db completo ogni volta che viene eseguito un test, ma non è probabile che cambi nel prossimo futuro da quello che posso dire, soprattutto se è necessario utilizzare DrupalWebTestCase per farlo.
Sto hackerando una soluzione usando Phactory e phpunit, che avvia manualmente Drupal. Ovviamente ho riscontrato alcuni problemi e non l'ho ancora finito, ma ci sta arrivando.
Fortunatamente la maggior parte del mio lavoro è a livello di backend, quindi posso rimanere al livello DRUPAL_BOOTSTRAP_DATABASE. Ma sto correndo in altre situazioni in cui avrò bisogno dell'intero stack.
Alla fine, TDD in Drupal non è ben supportato, quindi puoi scriverne uno tuo per farlo funzionare al di fuori del framework di test drupal o resistere alle scarse prestazioni.
-- AGGIORNARE --
Ho installato con successo una completa integrazione di Drupal con Phactory e ora sto eseguendo i miei test tramite phpunit invece del Drupal Web Test Case. Quindi è possibile.
Spero di arrivare al punto in cui posso rilasciarlo e può essere incorporato nel documento Phactory.
- AGGIORNAMENTO 2 -
Documento su come installo Phactory è su https://github.com/trimbletodd/phactory .