In der agilen Entwicklung von Software sind Tests eine Selbstverständlichkeit; das gilt auch für das Behavior-Driven Development.
In der aktuellen iX zeige ich, wie man auch JS-Code testen kann.
Dazu verwende ich Jasmine. Diese Anwendung hat keine Abhängigkeiten zum Webbrowser als Ablaufumgebung. Daher kann sie nicht nur im Browser (z.B. in einer statischen Webseite als Testumgebung), sondern auch außerhalb, z.B. auf einem Continuous Integration-Server oder einer serverseitigen Laufzeitumgebung wie Node.js verwendet werden.
Bei Jasmine handelt es sich um ein BDD-Framework, das nicht nur klassische Unit-Tests bietet, sondern den Paradigmen von „Specification by Example“ folgt.
Man kann Jasmine zum Testen von Node-Anwendungen, die nicht im Browser, sondern auf dem Server laufen, verwenden. Dazu gibt es das Modul „jasmine-node“. Auch in einem Grunt-Build lässt sich Jasmine verwenden. Verteilte Tests mit JsTestDriver lassen sich über einen Adapter ebenfalls mit Jasmine ausführen.
Jasmine ist nicht das einzige BDD-Framework für JavaScript. Zurzeit wird beispielsweise Cucumber, das De-facto-Framework für BDD, hin zu JavaScript portiert.
Das im Artikel verwendete Beispiel befindet sich auf Github, damit man es nachvollziehen kann.