A Programmer's Blog

JS-Labs PT. 2: Javascript sauber testen mit Jasmine und Coffeescript

Apr
24

Im ersten JS-Labs Post habe ich angekündigt, dass ich mir verschiedene Frameworks zur RIA Entwicklung mit Javascript anschauen werde.

Der erste Versuch soll eine reine jQuery-Entwicklung werden – Keine kompletten MVC-Frameworks, nur jQuery mit ein paar Extras. Dazu habe ich mir das Testframework Jasmine und die Scriptsprache CoffeeScript angschaut.

Jasmine ist ein behaviour-driven-development-framework um Tests im Stil von rspec zu schreiben. CoffeeScript ist eine Scriptsprache die direkt in Javascript kompiliert. Die Kombination aus beiden führt zu sehr schönen Tests!

Hier ein vereinfachtes Beispiel der Suite für die Bookmark-Klasse aus dem Wakmarks-Projekt:

describe "Bookmark", ->
  bookmark = null

  beforeEach ->
    bookmark = new Bookmark(1, "A Bookmark", "http://google.de")
  it "should have correct id", ->
    expect(bookmark.id).toEqual(1)
  it "should have correct name", ->
    expect(bookmark.name).toEqual("A Bookmark")
  it "should have correct URL", ->
    expect(bookmark.url).toEqual("http://google.de")

Das Ergebnis ist sehr übersichtlich, wie ich finde.

Die getestete Bookmark-Klasse sieht in CoffeeScript so aus:

class Bookmark
  constructor: (@id, @name, @url) ->

Also wenn das nicht cool ist?