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 classe Game.
  • test_RleReader.cpp : Contient les tests pour la classe RleReader.
  • test_Grid.cpp : Contient les tests pour la classe Grid.

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