Ujian unit - beberapa isu yang berkaitan dengan organisasi kod dalam ujian c++
ringa_lee
ringa_lee 2017-05-31 10:38:53
0
1
898

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...

ringa_lee
ringa_lee

ringa_lee

membalas semua(1)
给我你的怀抱

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 mengulas keluar #define
CATCH_CONFIG_MAIN, ia masih tidak boleh 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....

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan