Jasmine (JavaScript)
| Jasmine Core
| |
|---|---|
| [[Datei:Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)|150px]] | |
| Datei:Jasmine im Selbsttest (Firefox 26, Windows 7).PNG Jasmine 2 im Selbsttest | |
| Basisdaten
| |
| Maintainer | Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value) |
| Entwickler | Pivotal Labs (EMC Corporation) |
| Erscheinungsjahr | Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value) |
| Aktuelle Version | Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value) (Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)) |
| Aktuelle Vorabversion | Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value) (Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)) |
| Betriebssystem | plattformunabhängig |
| Programmiersprache | JavaScript |
| Kategorie | Modultest |
| Lizenz | MIT-Lizenz (Freie Software) |
| deutschsprachig | ja |
| jasmine.github.io | |
Jasmine (Jasmine Core) ist eine freie Modultest-Bibliothek für JavaScript. Jasmine ist auf jeder JavaScript-fähigen Plattform ausführbar (insbesondere ohne Web-Browser bzw. Document Object Model) und erfordert keine Anpassung des Prüfsystems (System Under Test). Die sehr einfach gehaltene Testbeschreibungssprache lehnt sich an die Testfall-Notation des Behavior Driven Development (BDD) an. Großen Einfluss auf die Entwicklung hatten andere Modultest-Bibliotheken wie ScrewUnit, JSSpec, JSpec und RSpec.<ref>Terin Jokes u. a.: Background. Why Another JavaScript TDD/BDD Framework? 22. August 2012, abgerufen am 1. Februar 2014 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
Einsatz[Bearbeiten]
Jasmine-Tests sollen einfach lesbar sein. Ein einfacher Hallo-Welt-Test sieht aus wie der Quellcode unten, wobei describe() ein Testszenario beschreibt und it() einen einzelnen Testfall. Im BDD-Sinne bezeichnet it() das Prüfsystem und soll als Subjekt zusammen mit dem Testnamen einen vollständigen (englischen) Satz bilden, der den Testfall beschreibt.
<syntaxhighlight lang="javascript"> describe('Hallo Welt!', function () {
it('says hello', function () {
expect(helloWorld()).toEqual('Hallo Welt!');
});
it('does not save the world', function () {
expect(helloWorld())
.not.toBe('Rettung der Welt!');
});
}); </syntaxhighlight>
Bedingungen werden durch Vergleichsfunktionen (Matchers) wie expect(Ausdruck).toEqual(Prüfwert), …toBeTruthy(), …toBeGreaterThan(7.5) oder …toBeDefined() ausgedrückt. Für komplexere Testszenarien werden describe()-Ausdrücke verschachtelt. Mithilfe von Spionen (Spies) können erwartete Funktionsaufrufe und ihre Signatur hinterlegt werden: expect(Objekt.Funktion).toHaveBeenCalledWith(Parameterliste). Dabei können diese durch Stubs oder Mock-Objekte ersetzt oder Beobachtungsfunktionen injiziert werden.
Weitere Funktionalitäten von Jasmine umfassen die Zeitablaufverfolgung und asynchrone Funktionsaufrufe. Zur Sicherstellung der Unabhängigkeit einzelner Tests kann die Testausführungsreihenfolge zufällig bestimmt werden.
Siehe auch[Bearbeiten]
Einzelnachweise[Bearbeiten]
<references />
Weblinks[Bearbeiten]
- Offizieller Jasmine-Webauftritt
- Jasmine auf GitHub
- Chutzpah. Abgerufen am 25. Juni 2013 (JavaScript/Typescript Test Runner für Visual Studio).
- Jasmine-jQuery. Abgerufen am 25. Juni 2013 (jQuery Erweiterung für Jasmine).
- Jasmine-Fixture. Abgerufen am 25. Juni 2013 (HTML-Fixtures für Jasmine).