C++-Testen für Anfänger: Wo man anfängt und nicht verrückt wird

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung: Warum Ihr C++-Code Schutz braucht?

\n\n

Stellen Sie sich vor, Sie haben ein Programm in C++ geschrieben. Es wird fehlerfrei kompiliert, startet und liefert sogar ein Ergebnis. Sie atmen erleichtert auf und senden den Code in die Produktion. Einen Tag später schreibt Ihnen ein Kollege: „Hey, deine Funktion calculateSum stürzt ab, wenn du eine negative Zahl übergibst.“ Und Sie beginnen fieberhaft, den Fehler zu suchen, indem Sie Hunderte von Codezeilen durchlesen.

\n\n

Kommt Ihnen das bekannt vor? Wenn ja, sind Sie hier genau richtig. C++-Testen ist keine langweilige Bürokratie, sondern Ihr persönlicher Schutzschild gegen solche Vorfälle. In diesem Artikel schauen wir uns an, wo ein Anfänger mit dem C++-Testen beginnen kann, ohne sich in theoretischen Tiefen zu verlieren. Sie erfahren, welche Werkzeuge Sie verwenden, wie Sie Ihre ersten Tests schreiben und warum Ihnen das Stunden an Nerven spart.

\n\n

Was ist Unit-Testing und warum wird es benötigt?

\n\n

Unit-Testing (oder Modultests) ist die Überprüfung einzelner „Bausteine“ Ihres Codes: Funktionen, Klassen, Methoden. Sie schreiben ein kleines Programm, das Ihre Funktion mit bestimmten Daten aufruft und prüft, ob das Ergebnis mit dem Erwarteten übereinstimmt.

\n\n

Warum braucht ein Anfänger das?

\n
    \n
  • Seelenfrieden: Sie wissen genau, dass Ihr Code funktioniert.
  • \n
  • Geschwindigkeit: Sie haben keine Angst, Änderungen vorzunehmen, weil die Tests sofort sagen, ob etwas kaputtgegangen ist.
  • \n
  • Dokumentation: Tests sind ein lebendiges Beispiel für die Verwendung Ihres Codes.
  • \n
\n\n

Ohne C++-Testen gleicht ein Projekt einem Haus, das ohne Fundament gebaut wurde. Es steht zwar, aber das erste Erdbeben (sprich: eine Änderung der Anforderungen) wird es zerstören.

\n\n

Werkzeuge für C++-Tests: Das erste Framework auswählen

\n\n

Für Unit-Tests in C++ gibt es mehrere beliebte Frameworks. Für Anfänger empfehle ich zwei: Google Test (gtest) und Catch2. Beide sind kostenlos, haben eine hervorragende Dokumentation und sind einfach einzubinden.

\n\n

Google Test (gtest)

\n

Der Industriestandard. Wird bei Google, YouTube und vielen Open-Source-Projekten verwendet. Leistungsstark, erfordert aber etwas Einrichtung.

\n\n

Catch2

\n

Leichter und „anfängerfreundlicher“. Wird mit einer einzigen Header-Datei eingebunden. Ideal für den Start.

\n\n

In diesem Artikel verwenden wir Catch2 – es ist minimalistisch und ermöglicht es Ihnen, sich auf das Wesentliche zu konzentrieren, anstatt auf die Einrichtung.

\n\n

Wie installiert man Catch2 und schreibt den ersten Test?

\n\n

Die Installation von Catch2 ist einfach. Laden Sie die einzelne Header-Datei catch.hpp aus dem offiziellen Repository herunter und legen Sie sie in den Ordner Ihres Projekts. Kein cmake, make oder Linken erforderlich.

\n\n

Jetzt schreiben wir ein einfaches C++-Programm und testen es.

\n\n

Beispiel: Additionsfunktion

\n

Erstellen Sie eine Datei calculator.cpp:

\n\n
#include <iostream>\n#include "catch.hpp"\n\n// Die zu testende Funktion\nint add(int a, int b) {\n    return a + b;\n}\n\n// Test\nTEST_CASE("Addition funktioniert korrekt", "[math]") {\n    REQUIRE(add(2, 3) == 5);\n    REQUIRE(add(-1, 1) == 0);\n    REQUIRE(add(0, 0) == 0);\n    REQUIRE(add(100, 200) == 300);\n}
\n\n

Kompilieren und ausführen:

\n\n
g++ -std=c++11 calculator.cpp -o calculator_test\n./calculator_test
\n\n

Sie sehen etwas wie:

\n\n
All tests passed (4 assertions in 1 test case)
\n\n

Herzlichen Glückwunsch! Sie haben Ihren ersten Unit-Test in C++ geschrieben. Lassen Sie uns analysieren, was hier passiert ist:

\n
    \n
  • TEST_CASE – ein Makro, das ein Testszenario erstellt.
  • \n
  • REQUIRE – überprüft eine Bedingung. Wenn sie falsch ist, schlägt der Test fehl.
  • \n
  • "[math]" – ein Tag zur Gruppierung von Tests.
  • \n
\n\n

Praktische Tipps: Wie man gute Tests schreibt

\n\n

Einfach einen Test zu schreiben, reicht nicht. Man muss nützliche Tests schreiben. Hier sind einige Regeln, die Ihr Unit-Testing auf das nächste Level bringen.

Blogs

Buchempfehlungen