test_GraphicalDisplay.cpp - JulianKerignard/ProjetJeuDeLaVie_POO GitHub Wiki

Fichier test_GraphicalDisplay.cpp

Description

Ce fichier contient des tests unitaires pour la classe GraphicalDisplay en utilisant GoogleTest. Les tests vérifient les fonctionnalités de base de la classe GraphicalDisplay, y compris l'initialisation, l'ouverture et la fermeture de la fenêtre, la gestion du délai entre les itérations, la mise en pause et la mise à jour de l'affichage.

Classe de Test

GraphicalDisplayTest

Classe de test pour GraphicalDisplay.

class GraphicalDisplayTest : public ::testing::Test {
protected:
    GraphicalDisplay* display;
    Grid* grid;

    void SetUp() override {
        display = new GraphicalDisplay(800, 600);
        grid = new Grid(10, 10);
        display->setGrid(grid);
    }

    void TearDown() override {
        delete display;
        delete grid;
    }
};
  • Objectif : Initialiser les objets GraphicalDisplay et Grid avant chaque test, et les détruire après chaque test.
  • Méthodes :
    • SetUp() : Initialise les objets GraphicalDisplay et Grid avant chaque test.
    • TearDown() : Détruit les objets GraphicalDisplay et Grid après chaque test.

Tests

1. GraphicalDisplayTest, Initialization

Test pour vérifier l'initialisation de l'affichage graphique.

TEST_F(GraphicalDisplayTest, Initialization) {
    EXPECT_NO_THROW(display->initialize());
}
  • Objectif : Vérifier que l'initialisation de l'affichage graphique ne génère aucune exception.
  • Assertions :
    • EXPECT_NO_THROW(display->initialize()) : Vérifie que la méthode initialize ne génère aucune exception.

2. GraphicalDisplayTest, WindowOpen

Test pour vérifier que la fenêtre graphique est ouverte après l'initialisation.

TEST_F(GraphicalDisplayTest, WindowOpen) {
    display->initialize();
    EXPECT_TRUE(display->isWindowOpen());
}
  • Objectif : Vérifier que la fenêtre graphique est ouverte après l'initialisation.
  • Assertions :
    • EXPECT_TRUE(display->isWindowOpen()) : Vérifie que la méthode isWindowOpen retourne true après l'initialisation.

3. GraphicalDisplayTest, SetIterationDelay

Test pour vérifier le réglage du délai entre les itérations.

TEST_F(GraphicalDisplayTest, SetIterationDelay) {
    display->setIterationDelay(100.0f);
    EXPECT_EQ(display->getIterationSpeed(), 100.0f);

    display->setIterationDelay(2000.0f); // Should be clamped to 1000.0f
    EXPECT_EQ(display->getIterationSpeed(), 1000.0f);

    display->setIterationDelay(30.0f); // Should be clamped to 50.0f
    EXPECT_EQ(display->getIterationSpeed(), 50.0f);
}
  • Objectif : Vérifier que le délai entre les itérations peut être correctement réglé et est correctement borné.
  • Assertions :
    • EXPECT_EQ(display->getIterationSpeed(), 100.0f) : Vérifie que la vitesse d'itération est 100.0f.
    • EXPECT_EQ(display->getIterationSpeed(), 1000.0f) : Vérifie que la vitesse d'itération est bornée à 1000.0f.
    • EXPECT_EQ(display->getIterationSpeed(), 50.0f) : Vérifie que la vitesse d'itération est bornée à 50.0f.

4. GraphicalDisplayTest, TogglePause

Test pour vérifier la mise en pause et la reprise de l'affichage graphique.

TEST_F(GraphicalDisplayTest, TogglePause) {
    EXPECT_FALSE(display->isPaused());
    display->togglePause();
    EXPECT_TRUE(display->isPaused());
    display->togglePause();
    EXPECT_FALSE(display->isPaused());
}
  • Objectif : Vérifier que l'affichage graphique peut être mis en pause et repris.
  • Assertions :
    • EXPECT_FALSE(display->isPaused()) : Vérifie que l'affichage n'est pas en pause initialement.
    • EXPECT_TRUE(display->isPaused()) : Vérifie que l'affichage est en pause après l'appel à togglePause.
    • EXPECT_FALSE(display->isPaused()) : Vérifie que l'affichage n'est plus en pause après un second appel à togglePause.

5. GraphicalDisplayTest, UpdateDisplay

Test pour vérifier la mise à jour de l'affichage graphique.

TEST_F(GraphicalDisplayTest, UpdateDisplay) {
    display->initialize();
    EXPECT_NO_THROW(display->update(*grid));
}
  • Objectif : Vérifier que la mise à jour de l'affichage graphique ne génère aucune exception.
  • Assertions :
    • EXPECT_NO_THROW(display->update(*grid)) : Vérifie que la méthode update ne génère aucune exception après l'initialisation.

6. GraphicalDisplayTest, CloseWindow

Test pour vérifier la fermeture de la fenêtre graphique.

TEST_F(GraphicalDisplayTest, CloseWindow) {
    display->initialize();
    display->close();
    EXPECT_FALSE(display->isWindowOpen());
}
  • Objectif : Vérifier que la fenêtre graphique est correctement fermée.
  • Assertions :
    • EXPECT_FALSE(display->isWindowOpen()) : Vérifie que la méthode isWindowOpen retourne false après l'appel à close.

Conclusion

☝️🤓Ces tests unitaires garantissent que la classe GraphicalDisplay fonctionne comme prévu en termes d'initialisation, d'ouverture et de fermeture de la fenêtre, de gestion du délai entre les itérations, de mise en pause et de mise à jour de l'affichage. En utilisant GoogleTest, ces tests fournissent une validation automatique et fiable des fonctionnalités de la classe.☝️🤓