QUnit

aus Wikipedia, der freien Enzyklopädie
QUnit

Example for QUnit test.png
Ergebnis eines QUnit-Tests
Basisdaten

Entwickler jQuery Foundation
Betriebssystem plattformunabhängig
Programmiersprache JavaScript
Kategorie Modultest
Lizenz MIT-Lizenz
deutschsprachig nein
qunitjs.com

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.

QUnit.module( 'Beispielmodul' );
QUnit.test( 'Test für wurzel', function( assert ) {
    assert.expect( 3 ); // Anzahl der Assertions
	assert.ok( wurzel( 2 ) < 1.5, 'Wurzel aus 2 ist weniger als 1.5' );
	assert.equal( wurzel( 9 ), 3, 'Wurzel aus 9 ist 3' );
	assert.throws( function() {
		wurzel( -1 );
	}, 'Wurzel einer negativen Zahl erzeugt Fehler' );
} );

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.[1]

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

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.[2]

Einsatz

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

Literatur

  • Dmitry Sheiko: Instant Testing with QUnit. Packt Publishing, 2013. ISBN 978-1-78328-218-0.
  • Frank Bongers, Maximilian Vollendorf: jQuery: Das Praxisbuch. Galileo Computing, 3. Auflage 2014. ISBN 978-3-8362-2638-7. Kapitel 11: QUnit – Testen mit jQuery.

Einzelnachweise

  1. qunit-npm-Package, abgerufen am 6. November 2014.
  2. a b Plugins auf qunitjs.com, abgerufen am 6. November 2014.
  3. John Resig, Bear Bibeault: Secrets of the JavaScript Ninja. Manning, 2013. ISBN 978-1-933988-69-6. S. 20.
  4. Aaron Jorbin: JavaScript Unit Tests for Core. make.wordpress.org, veröffentlicht am 13. September 2013, abgerufen am 6. November 2014.
  5. Manual:JavaScript unit testing auf mediawiki.org, abgerufen am 6. November 2014.
  6. bootstrap/js/tests auf GitHub, abgerufen am 6. November 2014.
  7. Alexander Neumann: BrowserSwarm: JavaScript-Anwendungen browser- und geräteübergreifend testen. Veröffentlicht am 27. September 2013, abgerufen am 6. November 2014.
  8. Your first app im Mozilla Developer Network, abgerufen am 6. November 2014.

Weblinks