OpenKeyWord  Version: 426, Datum:
Unittest

OKW-Unittest

Ziele des Unitests

OKW hat den Anspruch schnelles Testen zu ermöglichen. Dies gilt in gleichem Maße für die OKW-Unittests, auch diese müssen schnell sein.

Vor diesem Hintergrund wurden folgende Prinzipien aufgestellt:

  • Jede Unittest-Methode ist autark ausführbar. Eine Verkettung von Unittests findet nicht statt.
  • Jeder Unittestfall verfolgt genau ein Testziel. So ist im Fall eines Fehlschlages ohne jede weitere Analyse feststellbar, welche Klasse und welche Methode dadurch betroffen ist (ermöglicht eine effektive Fehlersuche) (–> Kapitel NUnittest-Klassenbezeichner)
  • Jede Methode hat mindestens so viele Testfälle, wie die Größe der zyklomatischen Komplexität (Mc Cabe Metrik) ist.

NUnit Testframework

Die OKW-Entwicklungsumgebung verwendet NUnit als Unittestframework. Hierfür ist jeweils die aktuellste Version von NUnit in OKW zu nutzen. Diese ist unter NUnit-Download zu finden.

NUnit selbst wird hier nicht weiter erläutert. Es wird auf die NUnit-Dokumentation verwiesen: NUnit-Dokumentation.

Organisation von Testfällen

Dateistruktur

Für die OKW-Unittest ist in der GIT-Dateistruktur das Verzeichnis /Test Unitestpfad reserviert. Mit dem eigenen Vereichnis für die Unittests wird erreicht, dass die OKW Klassen nicht mit den Unitest vermischt sind und so einfacher abgetrennt werden können

In /Test. werden alle OKW-Unittest abgelegt. Die Verzeichnisstruktur innerhalb von /Test entspricht der Verzeichnis-Struktur von /Develop. Zusätzlich ist noch ein Verzeichnis /Test/frame zufinden. Dieses enthält alle Frame-Definitionen, die für die Unittest benötigt werden.

NUnittest-Klassebezeichner

Jede OKW-Klasse hat eine entsprechende NUnit-Klasse. [CleanCode] Um die Zuordnung zu erleichtern gilt folgende Namensregel:

Die Unittest-Klasse heißt wie die zu testende OKW-Klasse mit dem Zusatz "_test\_" , der am Ende angefügt wird.

Beispiel

Die Klasse OKWHelper wird mit der Klasse OKWHelper_Test getestet.