В мире рубинов TDD облегчается с помощью инструментов, встроенных в структуру. Factory Girl, Mocha, rSpec и другие позволяют разработчикам легко и динамически создавать тесты, соответствующие нужным тестовым примерам.
Я также был разочарован отсутствием инструментов TDD в Drupal. Моя самая большая проблема с ними - количество времени, необходимое для выполнения одного теста. Циклы разработки не могут быть замедлены отдельными тестами, занимающими 60-90 секунд на каждую итерацию. Полные наборы тестов будут работать в течение нескольких часов, если вы вообще будете писать тесты.
Я подозреваю, что это связано с копированием полной базы данных при каждом запуске теста, но вряд ли это изменится в ближайшем будущем, что я могу сказать, особенно если вам нужно использовать DrupalWebTestCase для этого.
Я собираю решение, используя Phactory и phpunit, которые загружают Drupal вручную. Очевидно, столкнулся с некоторыми проблемами и еще не закончил это, но это добирается там.
К счастью, большая часть моей работы находится на уровне бэкэнда, поэтому я могу оставаться на уровне DRUPAL_BOOTSTRAP_DATABASE. Но я сталкиваюсь с большим количеством ситуаций, когда мне нужен полный стек.
В конце концов, TDD в Drupal не очень хорошо поддерживается, так что вы можете написать свой собственный, чтобы он работал вне инфраструктуры тестирования drupal или выдержал низкую производительность.
-- ОБНОВИТЬ --
Я успешно настроил полную интеграцию Drupal с Phactory и теперь запускаю свои тесты через phpunit вместо Drupal Web Test Case. Так что это возможно.
Надеюсь, я достигну того момента, когда смогу выпустить его, и он может быть включен в документ Phactory.
- ОБНОВЛЕНИЕ 2 -
Документ о том, как я настраиваю Phactory, находится по адресу https://github.com/trimbletodd/phactory .