C++ Academy · Pelajaran

Menyediakan GTest

Tambahkan dan jalankan rangka kerja

Pelajaran 1 daripada 413 langkah

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 build
  • cmake --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_main untuk mendapatkan main() secara automatik
  • Bina, jalankan, tapis dan integrasikan dengan CTest
Percuma untuk bermula

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

  1. Menyediakan GTest
  2. Pernyataan dan Pemadan
  3. Fixture dan Persediaan
  4. Mock dengan GMock
← Kembali ke C++ Academy