Jasmine (JavaScript)

JavaScript-framework
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 1. Februar 2014 um 16:41 Uhr durch Tinne (Diskussion | Beiträge) (Kategorien scharfgeschaltet und Importbaustein entfernt). Sie kann sich erheblich von der aktuellen Version unterscheiden.

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

Jasmine Core


Jasmine 2 im Selbsttest
Basisdaten

Entwickler Pivotal Labs (EMC Corporation)
Erscheinungsjahr 12. August 2009
Aktuelle Version 2.0.0
(16. Dezember 2013)
Betriebssystem plattformunabhängig
Programmier­sprache JavaScript
Kategorie Modultest
Lizenz MIT-Lizenz (Freie Software)
deutschsprachig nein
jasmine.github.io

Einsatz

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.

describe('Hallo Welt!', function() {
  it('says hello', function() {
    expect(helloWorld()).toEqual("Hallo Welt!");
    expect(helloWorld()).not.toBe("Rettung der Welt!");
  });
});

Bedingungen werden dabei durch Vergleichsfunktionen (Matchers) wie expect(Ausdruck).toEqual(Prüfwert), …toBeTruthy(), …toBeGreaterThan(7.5) oder …toBeDefined() ausgedrückt. 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.

Siehe auch

Einzelnachweise

  1. Terin Jokes u.a.: Background. Why Another JavaScript TDD/BDD Framework? 22. August 2012, abgerufen am 1. Februar 2014 (englisch).