Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk menguji unit perpustakaan fungsi C++?
Menggunakan Ujian Google untuk ujian unit dalam pustaka fungsi C++ boleh memastikan kebolehpercayaannya Langkah-langkah khusus adalah seperti berikut: Pasang Ujian Google untuk membuat ujian unit untuk pustaka fungsi: Buat fail ".test.cpp" dan sertakan Ujian Google. definisi pengepala yang diwarisi daripada:: Kelas ujian kes ujian::Ujian mencipta kaedah ujian bermula dengan TEST Jalankan ujian unit: gunakan fail boleh laku gtest dan masukkan fail kes ujian Gunakan makro penegasan lain: ASSERT_EQ (batalkan ujian), ASSERT_TRUE/ASSERT_FALSE (semak syarat), ASSERT_THROW (Semak pengecualian yang dilemparkan)
Cara ujian unit dalam perpustakaan fungsi C++
Pengenalan
kebolehpercayaan fungsiUnit perpustakaan. Salah satu rangka kerja ujian unit yang biasa digunakan dalam C++ ialah Google Test, yang menyediakan satu set makro dan fungsi yang memudahkan proses ujian. Artikel ini akan membimbing anda tentang cara menggunakan Ujian Google untuk ujian unit dalam pustaka C++.
Pasang Google Test
Google Test boleh dipasang dari sumber menggunakan arahan berikut:
git clone https://github.com/google/googletest cd googletest mkdir build cd build cmake .. -Dgtest_build_samples=ON make
Sediakan ujian unit
Untuk menulis ujian unit bagi perpustakaan fungsi, ikuti langkah berikut:
#includef8f95929f1e271b6664bf075820e4e6d
untuk memasukkan pengepala Ujian Google. #includef8f95929f1e271b6664bf075820e4e6d
包含 Google Test 标题。::testing::Test
基类。TEST
开头。实战案例:测试一个简单的函数
考虑一个名为 factorial
的函数,该函数计算给定非负整数的阶乘。让我们编写一个单元测试来测试此函数:
#include "factorial.h" #include "gtest/gtest.h" TEST(FactorialTest, BasicTest) { EXPECT_EQ(1, factorial(0)); EXPECT_EQ(1, factorial(1)); EXPECT_EQ(2, factorial(2)); EXPECT_EQ(6, factorial(3)); EXPECT_EQ(24, factorial(4)); }
在这个测试用例中:
TEST(FactorialTest, BasicTest)
定义了一个名为 BasicTest
的测试方法。EXPECT_EQ
宏用于比较预期结果与实际结果。运行单元测试
要运行单元测试,请使用 gtest
可执行文件。传入测试用例文件作为参数:
./gtest tests.test.cpp
输出将显示通过和失败的测试用例。
其他断言宏
Google Test 提供了其他断言宏,例如:
ASSERT_EQ
:与 EXPECT_EQ
类似,但失败时中止测试。ASSERT_TRUE
和 ASSERT_FALSE
:分别检查条件是否为 true 或 false。ASSERT_THROW
::testing::Test
. Buat kaedah ujian dalam kelas kes ujian, dengan nama kaedah bermula dengan
Kes praktikal: menguji fungsi mudah
faktorial
yang mengira faktorial integer bukan negatif yang diberikan. Mari tulis ujian unit untuk menguji fungsi ini: 🎜rrreee🎜Dalam kes ujian ini: 🎜BasicTest
kaedah ujian . 🎜🎜 makroEXPECT_EQ
digunakan untuk membandingkan hasil yang dijangkakan dengan hasil sebenar. 🎜🎜🎜🎜Menjalankan Ujian Unit🎜🎜Untuk menjalankan ujian unit, gunakan gtest
boleh laku. Lulus dalam fail kes ujian sebagai hujah: 🎜rrreee🎜Output akan menunjukkan kes ujian lulus dan gagal. 🎜🎜🎜Makro penegasan lain🎜🎜Google Test menyediakan makro penegasan lain, seperti: 🎜EXPECT_EQ
, tetapi membatalkan ujian apabila gagal. 🎜🎜ASSERT_FALSE
: Semak sama ada syarat itu benar atau palsu. 🎜🎜Atas ialah kandungan terperinci Bagaimana untuk menguji unit perpustakaan fungsi C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!