Einfaches Beispiel zur Einführung
Schritt 1: Erstellen eines neuen Qt-Projekt
- Öffne Qt Creator.
- Gehe zu Datei → Neu Datei oder Projekt.
- Wähle Qt Console Application aus der Liste der Projektvorlagen aus und klicke auf Weiter.
- Gib dem Projekt einen Namen, z. B.
LeapYearTestProject
, und wähle den Speicherort aus. - Wähle das gewünschte Qt-Kit aus (Standardkonfiguration kann beibehalten werden) und klicke auf Weiter.
- 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.
Öffne die Datei
LeapYearTestProject.pro
.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.
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ügen → C++-Quelldatei.
Nenne die Datei
test_leapyear.cpp
.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
undleapyear.h
für die Implementierung der Schaltjahr-Funktion.- In
leapyear.h
:
- In
#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.