Hanya membuat proyek uji dan menulis beberapa metode uji adalah semacam TDD, tetapi dalam pengalaman saya itu tidak banyak membantu kecuali Anda bekerja di perpustakaan di mana ada API yang dikenal dan panggilan metode berhubungan langsung dengan sesuatu yang diharapkan oleh pengguna . Anda perlu membuat daftar tes yang tepat, dan untuk aplikasi non-sepele, itu bisa sangat sulit dilakukan.
Saya sarankan mencoba SpecFlow - itu membuat tes mendefinisikan baik dipisahkan dari implementasi dan struktur file fitur memaksa Anda untuk berpikir tentang apa yang sebenarnya Anda uji.
Ketika Anda mendefinisikan fitur Anda hanya menulis sesuatu seperti
When a user is saved
Then the user should exist
Karena Anda tidak berada dalam file kode pada titik ini, Anda tidak tergoda untuk memikirkan detail implementasi seperti metode mana yang dipanggil untuk membuat pengguna atau bahkan kelas yang menerapkannya. Anda dapat menggunakan tag untuk memilih implementasi yang berbeda, jadi pada level ini tidak masalah apakah "pengguna diselamatkan" berarti panggilan ke CreateUser atau membuka browser dan mengirimkan formulir.
Setelah Anda memiliki fitur yang ditentukan, semua tes dihasilkan dan akan mulai lulus saat Anda menerapkan definisi langkah dan kode aplikasi yang sebenarnya sedang diuji.
Untuk aplikasi sederhana, Anda hanya dapat membuat file fitur, tetapi untuk hal yang lebih kompleks, berguna untuk menyatukan spesifikasi yang lebih lengkap sebelumnya. Saya menggunakan aplikasi pemetaan pikiran iPad untuk ini, tetapi Anda dapat menggunakan alat apa pun yang paling nyaman bagi Anda.
Mulailah dengan daftar fitur tingkat tinggi seperti "Registrasi pengguna". Ini cenderung terlalu luas untuk menulis tes secara langsung, jadi bagi mereka menjadi subfitur yang dapat didefinisikan dengan jelas dan umumnya dipetakan ke tindakan pengguna tertentu seperti "Simpan pengguna" atau "Lihat pengguna yang ada".
Masing-masing subfitur ini akan memerlukan daftar skenario yang bersama-sama sepenuhnya menentukan apakah fitur tersebut berfungsi, hal-hal seperti "Dapat menyimpan pengguna yang valid" dan "Tidak dapat menyimpan pengguna dengan nama pengguna duplikat".
Ketika Anda membangun daftar ini, umumnya akan menjadi jelas di mana struktur perlu disesuaikan - jika Anda tidak dapat membuat tes skenario untuk fitur, atau Anda berakhir dengan terlalu banyak dalam satu fitur maka fitur itu mungkin ditentukan pada level yang salah dan perlu dipisah atau diubah.