Saya mencoba memahami BDD. Saya sudah membaca beberapa artikel dan seperti yang saya mengerti BDD adalah "langkah selanjutnya" dari TDD. Saya mengatakan itu karena saya menemukan keduanya sangat mirip, dan seperti yang dapat saya baca di artikel ini , BDD lahir sebagai peningkatan dari TDD. Bagus, saya sangat suka ide itu.
Ada satu hal praktis yang tidak saya dapatkan, pikir: ada file .feature di mana BA akan menulis semua perilaku yang diharapkan di mana sistem akan memiliki. Sebagai seorang BA, ia tidak tahu bagaimana sistem dibangun, jadi kami akan menulis sesuatu seperti ini:
+ Skenario 1: Akun dikredit +
Mengingat akun dalam kredit
Dan kartunya valid
Dan dispenser itu berisi uang tunai
Ketika pelanggan meminta uang tunai
Kemudian pastikan akun didebit dan pastikan uang tunai dikeluarkan
Dan memastikan kartu dikembalikan
Ok, ini bagus, tetapi ada banyak bagian dari sistem yang akan berkolaborasi sehingga hal itu dapat terjadi (pikirkan keberatan Akun, keberatan Dispenser, keberatan Pelanggan, dan sebagainya). Bagi saya ini terlihat seperti tes integrasi.
Saya ingin mengadakan Tes Unit. Bagaimana saya menguji kode yang memeriksa apakah dispenser memiliki uang? Atau bahwa uang tunai dibagikan? Atau bahwa akun didebet saat diperlukan? Bagaimana saya bisa mencampur tes unit dengan tes "BA Created"?