Pengembangan Didorong Tes menyiratkan penulisan tes sebelum kode dan mengikuti siklus tertentu :
- Tes Tulis
- Periksa Tes (jalankan)
- Tulis Kode Produksi
- Periksa Tes (jalankan)
- Bersihkan Kode Produksi
- Periksa tes (lari)
Sejauh yang saya ketahui, ini hanya mungkin jika solusi pengembangan Anda memungkinkan Anda untuk dengan cepat beralih antara kode produksi dan tes, dan untuk melaksanakan tes untuk bagian kode produksi tertentu dengan sangat cepat.
Sekarang, sementara ada banyak Kerangka Pengujian Unit untuk C ++ (saya menggunakan Bost.Test atm.) Tampaknya tidak benar-benar ada solusi Visual Studio (Plugin) yang layak (untuk C ++ asli ) yang membuat TDD siklus tertahankan terlepas dari kerangka yang digunakan.
"Bearable" berarti tindakan satu klik untuk menjalankan tes untuk file cpp tertentu tanpa harus secara manual mengatur proyek pengujian terpisah dll. "Bearable" juga berarti bahwa tes sederhana dimulai (menghubungkan!) Dan berjalan sangat cepat .
Jadi, alat (plugin) dan teknik apa di luar sana yang memungkinkan siklus TDD untuk pengembangan C ++ asli dengan Visual Studio?
Catatan: Saya baik-baik saja dengan alat gratis atau "komersial".
Harap : Tidak ada rekomendasi kerangka kerja. (Kecuali kerangka kerja memiliki plugin Visual Studio khusus dan Anda ingin merekomendasikan plugin.)
Sunting Catatan : Jawaban sejauh ini telah menyediakan tautan tentang bagaimana mengintegrasikan kerangka kerja Unit Testing ke dalam Visual Studio. Sumber daya lebih atau kurang menggambarkan bagaimana mendapatkan kerangka kerja UT untuk mengkompilasi dan menjalankan Tes pertama Anda. Ini bukan tentang pertanyaan ini. Saya berpendapat bahwa untuk benar-benar bekerja secara produktif, memiliki Unit Tests yang dikelola secara manual (!), Pisahkan vcproj dari kelas produksi Anda akan menambah banyak overhead sehingga TDD "tidak mungkin". Sejauh yang saya ketahui, Anda tidak menambahkan "proyek" tambahan ke Java atau C # untuk mengaktifkan Unit Test dan TDD, dan untuk alasan yang baik. Ini seharusnya dimungkinkan dengan C ++ diberikan alat yang tepat, tetapi tampaknya (pertanyaan ini adalah tentang) bahwa ada sangat sedikit alat untuk TDD / C ++ / VS.
Googling sekitar, saya telah menemukan satu alat, VisualAssert , yang tampaknya mengarah ke arah yang benar. Namun, afaiks, tampaknya tidak digunakan secara luas (dibandingkan dengan CppUnit, Boost.Test dll.).
Sunting: Saya ingin menambahkan komentar ke konteks untuk pertanyaan ini. Saya pikir ini ringkasan yang baik untuk menguraikan (bagian dari) masalah: (komentar oleh Billy ONeal )
Visual Studio tidak menggunakan "build scripts" yang dapat diedit oleh pengguna. Satu proyek menghasilkan satu biner. Selain itu, Java memiliki properti yang Java tidak pernah membangun biner lengkap - biner yang Anda buat hanyalah ZIP dari file kelas. Karena itu dimungkinkan untuk mengkompilasi secara terpisah kemudian JAR bersama secara manual (menggunakan misalnya 7z). C ++ dan C # keduanya sebenarnya menautkan binari mereka, jadi secara umum Anda tidak dapat menulis skrip seperti itu. Cara terdekat yang bisa Anda dapatkan adalah mengkompilasi semuanya secara terpisah dan kemudian melakukan dua tautan (satu untuk produksi, satu untuk pengujian).
7z
). C ++ dan C # keduanya sebenarnya menautkan binari mereka, jadi secara umum Anda tidak dapat menulis skrip seperti itu. Cara terdekat yang bisa Anda dapatkan adalah mengkompilasi semuanya secara terpisah dan kemudian melakukan dua tautan (satu untuk produksi, satu untuk pengujian).
As far as I am aware, you do not add extra "projects" to a Java or C# thing to enable Unit Tests and TDD,
<- Kurasa ini tidak benar. Anda biasanya memiliki banyak proyek di C # juga; Anda tidak ingin mengirimkan kode pengujian Anda dalam biner produksi Anda.