Schritt 1: Erstellen eines neuen Qt-Projekt
  1. Öffne Qt Creator.
  2. Gehe zu DateiNeu Datei oder Projekt.
  3. Wähle Qt Console Application aus der Liste der Projektvorlagen aus und klicke auf Weiter.
  4. Gib dem Projekt einen Namen, z. B. LeapYearTestProject, und wähle den Speicherort aus.
  5. Wähle das gewünschte Qt-Kit aus (Standardkonfiguration kann beibehalten werden) und klicke auf Weiter.
  6. Klicke auf Fertigstellen.

-- Video --

Schritt 2: Richte die .pro-Datei ein

Um QtTest für Unit Tests zu nutzen, muss das Modul testlib in der .pro-Datei hinzugefügt werden.

  1. Öffne die Datei LeapYearTestProject.pro.

  2. Füge das QtTest-Modul hinzu, indem du folgende Zeile einfügst:


Schritt 3: Definiere den Unit-Test für die Schaltjahr-Funktion

Nun schreiben wir den Test, bevor wir die Funktion implementieren – gemäß dem TDD-Ansatz.

  1. Erstelle eine neue C++-Quelldatei für den Test. Klicke mit der rechten Maustaste auf den Projektnamen im Projekt-Explorer und wähle Neue Datei hinzufügenC++-Quelldatei.

  2. Nenne die Datei test_leapyear.cpp.

  3. In der Datei test_leapyear.cpp schreiben wir den ersten Unit-Test für die Schaltjahr-Funktion:

#include <QtTest/QtTest>
// Testklasse für die Schaltjahr-Funktion
class LeapYearTest : public QObject {
    Q_OBJECT
private slots:
    void testLeapYear();
};
// Testmethode für die Schaltjahr-Funktion
void LeapYearTest::testLeapYear() {
    // Hier testen wir die (noch nicht implementierte) Funktion isLeapYear
    extern bool isLeapYear(int year); // Deklaration der Funktion
    QVERIFY(isLeapYear(2000) == true);  // 2000 war ein Schaltjahr
    QVERIFY(isLeapYear(1900) == false); // 1900 war KEIN Schaltjahr
    QVERIFY(isLeapYear(2024) == true);  // 2024 wird ein Schaltjahr sein
    QVERIFY(isLeapYear(2023) == false); // 2023 ist KEIN Schaltjahr
}
QTEST_MAIN(LeapYearTest)
#include "test_leapyear.moc"
Schritt 4: Implementiere die Funktion isLeapYear

Da wir nun den Test haben, wird der nächste Schritt sein, die Funktion zu implementieren. Dies erfolgt in einer separaten Datei.

  • Erstelle eine neue Datei leapyear.cpp und leapyear.h für die Implementierung der Schaltjahr-Funktion.
    • In leapyear.h:
#ifndef LEAPYEAR_H
#define LEAPYEAR_H
bool isLeapYear(int year);
#endif // LEAPYEAR_H
  • In leapyear.cpp:
#include "leapyear.h"
bool isLeapYear(int year) {
    // Schrittweise Codierung des Algorithmus
        return true;
    }
    return false;
}

Mit jedem Schritt der Codierung, erfolgt ein Testdurchlauf.
Die Aufgabe ist gelöst, wenn alle Teiltests positiv abgeschlossen sind.

Zuletzt geändert: Samstag, 14. September 2024, 09:59