Jasmine (JavaScript)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Jasmine Core
Jasmine im Selbsttest (Firefox 26, Windows 7).PNG

Jasmine 2 im Selbsttest
Basisdaten
Entwickler Pivotal Labs (EMC Corporation)
Erscheinungsjahr 12. August 2009
Aktuelle Version 2.3.4
(13. Mai 2015)
Betriebssystem plattformunabhängig
Programmier­sprache JavaScript
Kategorie Modultest
Lizenz MIT-Lizenz (Freie Software)
Deutschsprachig nein
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.[1]

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.

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.

Siehe auch[Bearbeiten]

Einzelnachweise[Bearbeiten]

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

Weblinks[Bearbeiten]