Jasmine (JavaScript)

Jasmine Core

Jasmine im Selbsttest (Firefox 26, Windows 7).PNG
Jasmine 2 im Selbsttest
Basisdaten

EntwicklerPivotal Labs (EMC Corporation)
Erscheinungsjahr12. August 2009
Aktuelle Version3.7.1[1]
(19. März 2021)
Betriebssystemplattformunabhängig
ProgrammierspracheJavaScript
KategorieModultest
LizenzMIT-Lizenz (Freie Software)
deutschsprachignein
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.[2]

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!');
  });

  it('does not save the world', function () {
    expect(helloWorld())
      .not.toBe('Rettung der Welt!');
  });
});

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

Einzelnachweise

  1. Release 3.7.1. 19. März 2021 (abgerufen am 10. April 2021).
  2. Terin Jokes u. a.: Background. Why Another JavaScript TDD/BDD Framework? 22. August 2012, abgerufen am 1. Februar 2014 (englisch).

Weblinks

Auf dieser Seite verwendete Medien

Jasmine im Selbsttest (Firefox 26, Windows 7).PNG
Autor/Urheber:

Karsten Tinnefeld (Diskussion)

, Lizenz: Logo

Screenshot einer Ausführung von Jasmine 2.0.0 im Firefox-Browser (26 auf Windows 7 64Bit)