Meskipun saya belum pernah dalam proyek TDD atau BDD, atau saya pernah berada di beberapa yang mengatakan mereka melakukan TDD tetapi cukup jauh dari itu, ini adalah hal-hal yang saya pikirkan dan benar-benar mencoba membaca sebanyak yang saya bisa tentang.
Kembali ke pertanyaan. Ketika Anda melakukan BDD, Anda harus menulis "tes" terlebih dahulu dan membuatnya gagal, bukan? Dan kemudian mengimplementasikan fitur itu atau apa yang Anda sebut itu. Tetapi jika Anda menganggap ini ekstrem, bukankah ini semacam pengembangan top-down? Anda sedang melihat UI Anda dan berkata, "Saya ingin memiliki fitur / perilaku ini di sini". Kemudian Anda memperbaiki UI Anda untuk mengimplementasikan fitur itu dan kode yang mendukung UI. Pada titik ini Anda belum menerapkan logika bisnis atau logika akses data apa pun, Anda baru saja menerapkan perilaku Anda. Yang saya maksudkan alih-alih menulis tes terlebih dahulu Anda menulis kode UI Anda terlebih dahulu. Dalam beberapa kasus harus menghasilkan kode yang sama untuk akses data dan lapisan bisnis, karena Anda menggunakan kode UI untuk menentukan apa yang perlu didukung bisnis Anda.
Tentu saja Anda harus melengkapi ini dengan tes yang digunakan untuk memastikan bahwa fitur berfungsi sebagaimana mestinya dalam fitur.
Adakah pikiran?
main
. Dalam komentar top-down Anda, Anda berbicara tentang tes fungsional, yang menjalankan seluruh program melalui satumain
.