JUnit oder TestNG

Seit Jahren verwende ich zum Testen von Java-Software das Testing-Framework „JUnit“.
Gerade ab Version 4 begeistert mich das Tool sehr und hilft bei der Arbeit enorm.
Da ich nun mal endlich die Zeit gefunden habe, mich etwas mehr mit Performance-Testing zu befassen (es gab ja erst gestern einen kleinen Beitrag zu ContiPerf und JUnitBenchmarks), habe ich mich heute mal mit TestNG befasst.

Prinzipiell macht TestNG sehr vieles ähnlich wie JUnit4, was das Ausprobieren unheimlich erleichtert. Warum sollte man nun aber bei seinem nächsten Projekt nicht mehr auf JUnit, sondern auf TestNG setzen?

Eine Beantwortung dieser Frage könnte beispielsweise folgende Grafik liefern:
junit-vs-testng

Des Weiteren will TestNG „mehr“ als nur Unit-Tests ermöglichen. Es soll beispielsweise eine bessere Unterstützung für Integration-Tests bieten. Das habe ich selbst noch nicht versucht, aber es klingt zumindest sinnvoll. In einen Vorzug, in den ich selbst schon kommen durfte, hat mit Performance-Testing zu tun. Will man einen Test öfter als einmal durchführen (sagen wir 100mal, damit man WarmUp-Phasen der JVM aus dem Benchmarking „rausrechnen“ kann), dann braucht man in TestNG kein weiteres Framework, sondern kann direkt der Test-Annotation die Eigenschaft „invocationCount“ setzen).

Zusammenfassend kann man also folgendes sagen:

  • JUnit ist gut geeignet für Unit-Tests und bietet dafür eine wirklich tolle Unterstützung an.
  • TestNG kann alles was JUnit4+ kann und sogar noch mehr ohne dabei weitere Komplexität hinzuzufügen.

Mein nächstes Projekt wird also mit TestNG umgesetzt… vielleicht kann ich dann noch mehr zu den Unterschieden zwischen beiden Frameworks herausfinden.

Schreibe einen Kommentar