Di dunia ruby, TDD difasilitasi oleh alat yang dibangun ke dalam kerangka kerja. Factory Girl, Mocha, rSpec, dan lainnya memungkinkan pengembang membuat tes dengan mudah dan dinamis yang mengatasi kasus uji yang diperlukan.
Saya juga frustrasi dengan kurangnya alat TDD di Drupal. Masalah terbesar saya dengan mereka adalah jumlah waktu yang diperlukan untuk menjalankan satu tes. Siklus pengembangan tidak dapat diperlambat oleh tes individual yang membutuhkan 60-90 detik setiap iterasi. Suite tes lengkap akan berjalan ke kerangka waktu beberapa jam, jika Anda repot-repot menulis tes sama sekali.
Saya menduga itu ada hubungannya dengan menyalin db penuh setiap kali tes dijalankan, tetapi itu tidak mungkin berubah dalam waktu dekat dari apa yang dapat saya katakan, terutama jika Anda perlu menggunakan DrupalWebTestCase untuk melakukannya.
Saya meretas bersama solusi menggunakan Phactory dan phpunit, yang bootstraps Drupal secara manual. Jelas mengalami beberapa masalah dan belum menyelesaikannya, tetapi sudah sampai di sana.
Untungnya sebagian besar pekerjaan saya ada di lapisan backend, jadi saya bisa tetap di level DRUPAL_BOOTSTRAP_DATABASE. Tapi saya berlari ke lebih banyak situasi di mana saya akan membutuhkan setumpuk penuh.
Pada akhirnya, TDD di Drupal tidak didukung dengan baik, sehingga Anda dapat menulis sendiri untuk membuatnya bekerja di luar kerangka uji drupal, atau menanggung kinerja yang buruk.
- PEMBARUAN -
Saya telah berhasil menyiapkan integrasi Drupal penuh dengan Phactory, dan sekarang saya menjalankan tes saya melalui phpunit alih-alih Drupal Web Test Case. Jadi itu mungkin.
Mudah-mudahan saya akan sampai pada titik di mana saya bisa melepaskannya dan itu bisa dimasukkan ke dalam dokumen Phactory.
- PEMBARUAN 2 -
Dok tentang bagaimana saya mengatur Phactory di https://github.com/trimbletodd/phactory .