У рубіновому світі TDD сприяють інструменти, вбудовані в рамки. Factory Girl, Mocha, rSpec та інші дозволяють розробникам створювати легко та динамічно тести, що стосуються необхідних тестових випадків.
Мене також розчарувало відсутність інструментів TDD в Drupal. Моя найбільша проблема з ними - це кількість часу, яке потрібно для проведення одного тесту. Цикли розвитку не можна уповільнити за допомогою індивідуальних тестів, що займають 60-90 секунд за кожну ітерацію. Повні тестові набори попадають у кількагодинний часовий проміжок, якщо ви взагалі намагаєтеся писати тести.
Я підозрюю, що це стосується копіювання повного db кожного разу, коли тест запускається, але це, швидше за все, не зміниться найближчим часом від того, що я можу сказати, особливо якщо для цього вам потрібно використовувати DrupalWebTestCase.
Я зломлю разом рішення за допомогою Phactory і phpunit, які завантажують Drupal вручну. Очевидно, що я стикаюся з деякими проблемами, і не закінчив її, але він дійшов.
На щастя, більша частина моєї роботи знаходиться на резервному шарі, тому я можу залишитися на рівні DRUPAL_BOOTSTRAP_DATABASE. Але я біжу в більші ситуації, коли мені знадобиться повний стек.
Зрештою, TDD в Drupal недостатньо підтримується, тому ви можете написати своє власне, щоб змусити його працювати поза рамками тестування drupal або пережити низьку продуктивність.
- ОНОВЛЕННЯ -
Я успішно налаштував повну інтеграцію з Drupal з Phactory, і тепер запускаю свої тести через phpunit замість веб-тесту Drupal. Так це можливо.
Я сподіваюся, я дістанусь до моменту, коли я можу випустити його, і він може бути включений у документ Phactory.
- ОНОВЛЕННЯ 2 -
Документ про те, як я налаштовую Phactory, знаходиться на веб- сайті https://github.com/trimbletodd/phactory .