QUnit
# QUnit

QUnit ist ein freies Modultest-Framework für JavaScript, das speziell für Unit-Tests geeignet ist. Ursprünglich entwickelt wurde es für Softwaretests für jQuery. 2008 wurde die erste Version veröffentlicht und seitdem vom jQuery-Team gepflegt und weiterentwickelt.

## Geschichte

Ursprünglich entwickelte John Resig das Framework noch ohne Namen als Testframework für jQuery. 2008 trennte er den Code und veröffentlichte ihn unter dem Namen QUnit, damit auch andere Projekte das Framework für Tests einsetzen konnten. Seit einer Neuprogrammierung 2009 kann QUnit vollständig unabhängig von jQuery eingesetzt werden.

## Konzept

QUnit übernimmt das Konzept der XUnit-Frameworks. Die Tests gliedern sich in einzelne Module, die aus einem oder mehreren Tests bestehen können, die wiederum die einzelnen Assertions enthalten. Zum Testen von Ajax und anderen Anwendungen, die über Callback-Funktionen arbeiten, besteht die Möglichkeit asynchrone Tests zu verwenden.

### Beispiel

Das folgende Beispiel besteht aus einem einzigen Modul mit nur einem Test, der eine Funktion wurzel testet, die die Quadratwurzel einer reellen Zahl berechnen soll.

## Anwendung

QUnit-Tests können sowohl in einem Webbrowser als auch in browserlosen JavaScript-Umgebungen wie Node.js durchgeführt werden.

Für Tests im Browser wird dazu ein HTML-Dokument angelegt, das eine kleine Grundstruktur enthält, in die QUnit die Ergebnisse einträgt, und das als JavaScript-Dateien QUnit, den zu testenden Code und den Test einbindet. QUnit führt dann alle eingebundenen Tests durch und zeigt die Ergebnisse an.

Für Tests ohne Browser muss der Programmierer selbst QUnit starten und die Ergebnisse in geeigneter Form ausgeben, wobei für die meisten Umgebungen bereits vorgefertigte Skripte zur Verfügung stehen, die die notwendigen Schritte durchführen.

Die Testergebnisse können auch an Systeme zur kontinuierlichen Integration wie etwa Jenkins weitergegeben werden.

QUnit kann durch verschiedene Plugins erweitert werden. Es gibt Plugins, die neue Assertions hinzufügen (etwa um einzelne Pixel eines Canvas-Elements zu testen), zur Bereitstellung von Mock-Objekten (etwa um beim Arbeiten mit XMLHttpRequest die Serverkomponente zu simulieren) oder um die Testabdeckung zu bestimmen.

## Einsatz

In einer Umfrage aus dem Jahr 2009 war QUnit mit etwa 20 % eines der am häufigsten eingesetzten Test-Frameworks für JavaScript. Neben jQuery und jQuery UI setzt eine Reihe weiterer bekannter Software-Projekte QUnit zum Test ihrer JavaScript-Komponenten ein, etwa WordPress, MediaWiki oder Bootstrap. QUnit wurde in BrowserSwarm verwendet und auch das Mozilla-Tutorial zum Erstellen von Web-Apps empfiehlt QUnit zum Testen.

