Guide d'utilisation des tests unitaires via GoogleTest 🛠️ - JulianKerignard/ProjetJeuDeLaVie_POO GitHub Wiki
Guide d'utilisation des tests unitaires via GoogleTest 🛠️
Introduction à GoogleTest 📋
GoogleTest est un framework de test C++ qui permet de créer et d'exécuter des tests unitaires. Il est largement utilisé pour vérifier que les différentes parties de votre code fonctionnent comme prévu. Dans ce projet, nous avons utilisé GoogleTest pour écrire et exécuter des tests unitaires pour les différentes composantes du Jeu de la Vie.
Structure des tests unitaires 🗂️
Fichiers de test
Les tests unitaires sont organisés dans des fichiers spécifiques situés dans le répertoire tests
. Voici quelques exemples de fichiers de test :
test_Game.cpp
: Contient les tests pour la classeGame
.test_RleReader.cpp
: Contient les tests pour la classeRleReader
.test_Grid.cpp
: Contient les tests pour la classeGrid
.
Exemple de fichier de test
Voici un exemple de fichier de test pour la classe Game
(test_Game.cpp
) :
#include "Code/Headers/game.h"
#include "gtest/gtest.h"
// Test pour vérifier que le jeu se lance correctement
TEST(GameTest, InitializeGame) {
Game game;
EXPECT_NO_THROW(game.initialize());
}
// Test pour vérifier que le jeu se termine correctement
TEST(GameTest, EndGame) {
Game game;
EXPECT_NO_THROW(game.end());
}
Chaque test est défini à l'aide de la macro TEST
, qui prend deux arguments : le nom du groupe de tests (ici, GameTest
) et le nom du test (ici, InitializeGame
et EndGame
).
Instructions pour exécuter les tests unitaires 👨💻
Pour exécuter les tests unitaires, suivez ces étapes :
1. Naviguer vers le répertoire de construction
Ouvrez un terminal et naviguez jusqu'au répertoire de construction où les fichiers de compilation ont été générés :
cd /root/CLionProjects/untitled/cmake-build-debug
2. Exécuter les tests unitaires
Lancez l'exécutable des tests unitaires. Généralement, il s'appelle GameOfLifeTests
:
./GameOfLifeTests
3. Vérifier les résultats des tests
Les résultats des tests seront affichés dans le terminal. Voici un exemple de sortie de test :
[==========] Running 2 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 2 tests from GameTest
[ RUN ] GameTest.InitializeGame
[ OK ] GameTest.InitializeGame (0 ms)
[ RUN ] GameTest.EndGame
[ OK ] GameTest.EndGame (0 ms)
[----------] 2 tests from GameTest (0 ms total)
[----------] Global test environment tear-down
[==========] 2 tests from 1 test suite ran. (0 ms total)
[ PASSED ] 2 tests.
4. Diagnostiquer et corriger les erreurs (si nécessaire)
Si certains tests échouent, utilise les messages d'erreur pour diagnostiquer le problème. Voici un exemple de sortie de test avec une erreur :
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from GameTest
[ RUN ] GameTest.InitializeGame
/root/CLionProjects/untitled/tests/test_Game.cpp:10: Failure
Expected: game.initialize() doesn't throw an exception.
Actual: it throws.
[ FAILED ] GameTest.InitializeGame (1 ms)
[----------] 1 test from GameTest (1 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (1 ms total)
[ PASSED ] 0 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] GameTest.InitializeGame