Saya seorang pengaturcara C++ yang baru Saya menggunakan JavaScript pada kebanyakan masa Sekarang kerana keperluan kerja rumah, saya sedang menulis projek dalam C++. Saya mahu melakukan ujian sendiri sebelum ini. Selepas membaca ini, saya memutuskan untuk menggunakan rangka kerja ujian tangkapan.
Semasa saya menulis tugasan kecil C++ sebelum ini, saya sama ada cout<< terus dalam fungsi utama dan kemudian memadamkannya sebelum penyerahan, atau saya mencipta fail cpp baharu, menambah fungsi utama, dan kemudian menamakan semula fungsi utama buat sementara waktu. projek. (Secara amnya, saya menukar nama fungsi utama kepada main00 atau sebagainya), klik Jalankan dalam XCode untuk menguji sementara, terutamanya untuk menguji ketidakpastian di tempat tertentu, dan kemudian menukarnya semula selepas ujian selesai.
Tapi saya rasa kaedah yang disenaraikan di atas memang bodoh dan membuatkan semua warga emas ketawa.
Direktori projek saya kini kelihatan seperti ini (ini adalah tugas untuk melaksanakan minisql menggunakan c++):
Pada masa ini, setiap fail sebenarnya tidak mempunyai kandungan Setiap folder mewakili modul, dan hubungan antara setiap modul adalah seperti berikut:
Saya bercadang untuk menulis satu bahagian dan menguji satu bahagian (contohnya, tulis BufferManager dahulu Jika tiada masalah dalam ujian, teruskan menulis bahagian seterusnya).
Jadi saya kini mempunyai soalan berikut tentang organisasi fail ujian:
Perlukah saya meletakkan fail ujian dalam direktori fail modul yang sepadan? Atau adakah terdapat fail ujian yang berasingan?
Adakah setiap modul mempunyai fail ujian yang berasingan?
Selain itu, saya mendapati bahawa jika saya menulis dua fail ujian, walaupun saya mengulasnya #define CATCH_CONFIG_MAIN
yang ini masih tidak dapat berjalan seperti biasa melainkan semua fail ujian lain diulas.
Selain itu, selepas saya menulis fail kemasukan (terdapat fungsi utama dalam NewSQL.cpp), bagaimanakah saya harus menjalankan fail ujian ini? Adakah anda masih mengulas dan tidak mengulas....
Saya rasa soalan yang saya ajukan agak bodoh, tetapi saya benar-benar ingin tahu cara yang betul untuk menulis dan menggunakan ujian saya tidak dapat mencari jawapan yang sangat disasarkan di Internet, jadi saya datang ke sini untuk bertanya, terima kasih~
(Jika anda rasa sesuatu tidak dilakukan dengan baik, sila nyatakan dan saya akan serius membetulkannya, tetapi tolong jangan menyerang secara peribadi. Jika jawapan anda sangat berharga untuk rujukan, saya juga akan menghantar mesej peribadi kepada anda untuk bertanya sama ada anda perlukan sejumlah imbuhan sampul merah, majlis pelajar, Luahkan perasaan anda)
Portal tangkapan yang dilampirkan: https://github.com/philsquare...
Kod ujian dan kod pengeluaran dipisahkan dan berkaitan dalam penamaan
Sebagai contoh, kelas ujian kelas A dipanggil AUnitTest atau ATest atau AUT
Asingkan fail ujian untuk setiap modul
Fail ujian mempunyai fail kemasukan sendiri
Kuncinya ialah konfigurasi projek Projek ujian bergantung pada kod pengeluaran, dan kod pengeluaran tidak bergantung pada kod ujian.
Dua sepatutnya boleh menghasilkan dua program boleh laksana. Konfigurasikan projek mengikut matlamat sedemikian