Maison > Article > développement back-end > Comment tester unitairement la bibliothèque de fonctions C++ ?
L'utilisation de Google Test pour les tests unitaires dans une bibliothèque de fonctions C++ peut garantir sa fiabilité. Les étapes spécifiques sont les suivantes : Installez Google Test pour créer des tests unitaires pour la bibliothèque de fonctions : Créez un fichier « .test.cpp » et incluez le Google Test. définition d'en-tête héritée de : La classe de scénario de test de testing::Test crée une méthode de test commençant par TEST Exécutez le test unitaire : utilisez le fichier exécutable gtest et transmettez le fichier de scénario de test. Utilisez d'autres macros d'assertion : ASSERT_EQ (abandonnez le. test), ASSERT_TRUE/ASSERT_FALSE (vérifier la condition), ASSERT_THROW (Vérifier l'exception levée)
Comment effectuer un test unitaire dans la bibliothèque de fonctions C++
Introduction
Les tests unitaires sont essentiels pour garantir la fiabilité de la fonction bibliothèque. L'un des frameworks de tests unitaires couramment utilisés en C++ est Google Test, qui fournit un ensemble de macros et de fonctions qui simplifient le processus de test. Cet article vous expliquera comment utiliser Google Test pour les tests unitaires dans une bibliothèque C++.
Installer Google Test
Google Test peut être installé à partir des sources à l'aide de la commande suivante :
git clone https://github.com/google/googletest cd googletest mkdir build cd build cmake .. -Dgtest_build_samples=ON make
Configurer les tests unitaires
Pour écrire un test unitaire pour une bibliothèque de fonctions, suivez ces étapes :
#includef8f95929f1e271b6664bf075820e4e6d
pour inclure les en-têtes Google Test. #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
. Créez une méthode de test dans la classe de cas de test, avec le nom de la méthode commençant par TEST
.
Exemple pratique : tester une fonction simple
factorial
qui calcule la factorielle d'un entier non négatif donné. Écrivons un test unitaire pour tester cette fonction : 🎜rrreee🎜Dans ce cas de test : 🎜TEST(FactorialTest, BasicTest)
définit un fichier appelé BasicTest
méthode de test . 🎜🎜La macro EXPECT_EQ
est utilisée pour comparer les résultats attendus avec les résultats réels. 🎜🎜🎜🎜Exécuter des tests unitaires🎜🎜Pour exécuter des tests unitaires, utilisez l'exécutable gtest
. Transmettez le fichier de scénario de test comme argument : 🎜rrreee🎜La sortie affichera les cas de test réussis et échoués. 🎜🎜🎜Autres macros d'assertion🎜🎜Google Test fournit d'autres macros d'assertion, telles que : 🎜ASSERT_EQ
: similaire à EXPECT_EQ
, mais abandonne le test en cas d'échec. 🎜🎜ASSERT_TRUE
et ASSERT_FALSE
: Vérifiez si la condition est vraie ou fausse respectivement. 🎜🎜ASSERT_THROW
: Vérifiez si la fonction appelante lève l'exception spécifiée. 🎜🎜🎜🎜Conclusion🎜🎜 Les tests unitaires dans les bibliothèques C++ sont très simples avec Google Test. En suivant les étapes décrites dans cet article, vous pouvez écrire des tests unitaires robustes et fiables qui garantissent que votre bibliothèque fonctionne comme prévu. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!