Menyediakan GTest
Tambahkan dan jalankan rangka kerja
Menyediakan GTest ialah pelajaran C++ Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran C++ Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus C++ Academy merangkumi sejumlah 4 pelajaran.
Mengapa Rangka Kerja Ujian?
Google Test (GTest) ialah rangka kerja ujian unit C++ yang digunakan secara meluas. Ia menyediakan pendaftaran ujian, penegasan yang lengkap, lekapan dan pelaporan yang jelas supaya anda boleh mengesahkan kod secara automatik.
Mendapatkan GTest
Cara biasa untuk mendapatkan GTest:
- Pakej sistem (contohnya
libgtest-dev) - FetchContent dalam CMake yang mengambil kandungan daripada GitHub
- Submodul yang dibekalkan bersama projek
FetchContent ialah pilihan yang paling mudah alih untuk projek baharu.
CMake dengan FetchContent
Persediaan CMake minimum memuat turun GoogleTest dan memautkannya.
# CMakeLists.txt
include(FetchContent)
FetchContent_Declare(
googletest
URL https://github.com/google/googletest/archive/refs/tags/v1.14.0.zip
)
FetchContent_MakeAvailable(googletest)
add_executable(my_tests test_main.cpp)
target_link_libraries(my_tests GTest::gtest_main)Ujian Pertama Anda
Ujian diisytiharkan dengan makro TEST yang menerima nama suite ujian dan nama ujian. Di dalamnya, anda menggunakan penegasan.
#include <gtest/gtest.h>
int add(int a, int b) { return a + b; }
TEST(MathTest, AddsPositive) {
EXPECT_EQ(add(2, 3), 5);
}Tidak Perlu main()
Pautan kepada GTest::gtest_main membekalkan main() yang menjalankan semua ujian berdaftar. Anda hanya perlu menulis kes ujian.
Menulis main Sendiri
Jika anda memerlukan titik masuk tersuai, mulakan GTest sendiri.
#include <gtest/gtest.h>
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}Membina dan Menjalankan
Selepas mengkonfigurasi CMake, bina dan jalankan.
cmake -S . -B buildcmake --build build./build/my_tests
GTest mencetak ringkasan lulus/gagal berwarna.
Membaca Output
Setiap ujian melaporkan [ RUN ], kemudian [ OK ] atau [ FAILED ]. Baris terakhir menunjukkan jumlah ujian yang lulus. Kegagalan menyertakan fail, baris dan nilai yang dijangka berbanding nilai sebenar.
Menjalankan Sebahagian Ujian
Gunakan bendera --gtest_filter untuk menjalankan ujian yang sepadan sahaja, contohnya ./my_tests --gtest_filter=MathTest.*. Ini mempercepat penyahpepijatan yang tertumpu.
Mengintegrasikan dengan CTest
Panggil enable_testing() dan daftarkan binari dengan gtest_discover_tests supaya ctest boleh menjalankan suite anda dalam CI.
# CMakeLists.txt
enable_testing()
include(GoogleTest)
gtest_discover_tests(my_tests)Aliran Kerja yang Sihat
Tulis ujian yang gagal, laksanakan kod, kemudian lihat ujian itu lulus. Pastikan ujian pantas dan bebas supaya anda boleh menjalankannya setiap kali ada perubahan.
Semakan Pantas
Ingat kembali cara main() dibekalkan.
Rumusan
Anda telah menyediakan Google Test.
- Dapatkan melalui FetchContent, pakej atau submodul
TEST(Suite, Name)mengisytiharkan ujian- Pautkan
gtest_mainuntuk mendapatkanmain()secara automatik - Bina, jalankan, tapis dan integrasikan dengan CTest
Pelajari C++ dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Soalan Lazim
Adakah pelajaran “Menyediakan GTest” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran C++ Academy, termasuk “Menyediakan GTest”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus C++ Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Menyediakan GTest”?
Tambahkan dan jalankan rangka kerja Anda berlatih C++ Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan C++ Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran C++ Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Menyediakan GTest” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran C++ Academy ini?
Ya. Setiap pelajaran C++ Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Menyediakan GTest
- Pernyataan dan Pemadan
- Fixture dan Persediaan
- Mock dengan GMock