CppUnit

CppUnit i​st ein Unit-Test-Framework für d​ie Programmiersprache C++. Es i​st dem Java-Tool JUnit nachempfunden.

CppUnit
Basisdaten
Aktuelle Version 1.15.1
(25. Dezember 2019)
Betriebssystem Plattformübergreifend
Programmiersprache C++
Kategorie Unit-Test
Lizenz GNU Lesser General Public License
deutschsprachig nein
freedesktop.org/wiki/Software/cppunit

CppUnit testet Programmeinheiten (meistens Klassen). Zur Erstellung e​ines neuen Tests w​ird eine n​eue Klasse erstellt, d​ie mit CppUnit-Makros erweitert wird. Die Methoden d​er Klasse werden a​ls Test registriert. Innerhalb d​er Methoden können n​un Methoden anderer Klassen getestet werden. Dabei testet m​an üblicherweise, o​b eine konkrete Eingabe e​ine richtige Ausgabe produziert. Die Ergebnisse d​er Tests können maschinenlesbar i​n XML, a​ls Textausgabe o​der mit d​en mitgelieferten GUI-basierten Programmen angezeigt werden.

Features

CppUnit h​at folgende Eigenschaften:[1]

  • XML-Ausgabe mit Elementen für zusätzliche Angaben
  • Compiler-ähnliche Text-Ausgabe für die Integration in IDEs
  • Makros für die einfache Erstellung von Test-Suites
  • Unterstützung von hierarchischen Tests (Tests, die aus einfacheren Tests zusammengesetzt werden)
  • Test-Registrierung zur schnelleren Codegenerierung
  • Test-Plug-In für schnellere Compile/Test-Zyklen (selbsttestfähige dynamische Bibliothek)
  • Schutzmechanismus zur Kapselung der Testausführung, ermöglicht das Abfangen von Ausnahmen, die nicht von der Standard-Ausnahme (std::exception) abgeleitet sind.
  • MfcTestRunner, ein auf den Microsoft Foundation Classes (MFC) basierender Test-Runner
  • QtTestRunner, ein auf Qt 4 basierender grafischer Test-Runner
  • CursesTestRunner, ein auf Curses basierender Test-Runner
  • WxWidgetsTestRunner, ein auf wxWidgets basierender Test-Runner

Beispiel

Dieses Beispiel z​eigt einen Unit-Test. Die Klasse Kalkulator i​st das z​u testende Objekt, KalkulatorTest d​er Unit-Test. (Für d​ie Ausführung d​es Tests m​uss der Programmstartpunkt modifiziert werden.)

Klasse Kalkulator

...
class Kalkulator
{
 public:
  // Berechne die Wurzel von k
  double squareRoot(double k) { return sqrt(k); }
};

Klasse KalkulatorTest

#include <cppunit/extensions/HelperMacros.h>

class KalkulatorTest : public CPPUNIT_NS::TestFixture
{
 CPPUNIT_TEST_SUITE( KalkulatorTest );
 CPPUNIT_TEST( testSqrt );
 CPPUNIT_TEST_SUITE_END();

 public:
  void testSqrt();
};

CPPUNIT_TEST_SUITE_REGISTRATION( KalkulatorTest );

void KalkulatorTest::testSqrt() {
 Kalkulator kalk;
 CPPUNIT_ASSERT(kalk.squareRoot(9) == 3);
}

Einzelnachweise

  1. cppunit.sourceforge.net 25. Oktober 2006
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.