2012-06-13 4 views
10

Ich bin auf der Suche nach Jasmine Tests zu Mocha-Tests aufgrund seiner Fähigkeit, Vor (alle), seine Berichtsfunktionen und seine Unterstützung für Coffeescript zu machen.Mocha-kompatible Geräte unterstützen

Eine Sache, die ich nicht finden konnte, ist, ob Mocha (oder in Verbindung mit einer kompatiblen Assertion-Bibliothek) Fixtures wie Jasmine-Jquery unterstützt (https://github.com/velesin/jasmine-jquery). Gibt es solche Funktionalität für Mocha?

Ich versuche einige In-Browser-Code zu testen (so werde ich es mit dem HTML-Test-Runner ausführen), die das DOM manipuliert. Ich möchte Zombiejs nicht verwenden, weil ich es lieber in der Umgebung ausführen würde, in der ich teste.

Edit: Nur als Referenz, während der Suche nach einer Lösung stieß ich auf Grunt + Mocha mit einem Phantomjs Implementierung. Dies funktioniert auch nicht für meinen Fall, da ich eine benutzerdefinierte Version von Webkit verwenden möchte.

Antwort

10

Von dem, was ich herausgefunden habe, ist die Antwort nein. Dies ist wahrscheinlich auf die Tatsache zurückzuführen, dass Mocha zuerst node.js unterstützen sollte. In Knoten existiert der Begriff der Fixtures in Jasmine-jquery nicht, da kein DOM/Browser existiert.

Mit Blick auf die Geräte-Unterstützung für das Jasmine-Jquery-Plugin, merke ich jetzt, dass es nicht so schwierig ist, diese Funktionalität selbst zu bauen. Der grundlegende Mechanismus besteht darin, mithilfe von jQuery dem DOM eine externe Vorlage hinzuzufügen, während die Verweise darauf beibehalten werden, sodass Bereinigung und Zwischenspeicherung möglich sind.

Ich werde diese Antwort aktualisieren, wenn ich entscheiden, auf etwas veröffentlichen Github

Edit: hier ist es - https://github.com/badunk/js-fixtures. Der Code und die Spezifikationen wurden im Wesentlichen von Jasmine-Jquery kopiert, wobei die Abhängigkeiten entfernt wurden.

+0

Repliziert JS-Fixtures auch das Laden von JSON, wie 'getJSONFixture()' in Jasmine-Jquery? –

+0

nein, das wird derzeit nicht unterstützt - ich werde es als eine Verbesserung betrachten. PR's willkommen: https://github.com/badunk/js-fixtures/issues/12 – badunk

+0

Ist das immer noch so? Es gibt Setup- und Teardown-Funktionen in Mocha und sie unterstützen laufende Tests im Browser. – Indolering

0

Haben Sie versucht, zombie.js? Es wird mit NPM installiert und scheint ziemlich agnostisch zu sein, um das Framework zu testen.

gab mir diese ein voll funktionsfähiges Fenster-Objekt, das ich mit jQuery schmücken könnte.

Browser = require 'zombie' 

browser = new Browser() 
global.window = browser.window 
require '../src/js/vendor/jquery-1.7.1.min.js' 

UPDATE:

Ich habe dieses Problem nochmals besucht, und es sieht aus wie Jquery + jsdom (via NPM) scheint eine beliebte und leichte Lösung. Beispiel: http://www.netboy.pl/2012/10/testing-jquery-code-with-mocha-chai-and-jsdom/

+0

Link funktioniert nicht mehr. – CodingWithSpike

+0

JSDOM und Zombie sind ein bisschen problematisch. Zum Beispiel keine Unterstützung für 'classList',' dataset' und eine Menge anderer Dinge, die ich verwenden wollte. Scheint, ich gehe damit zurück zu Phantomjs. –

Verwandte Themen