Ich versuche, Jasmine für Komponententests für eine kleine Anwendung in coffeescript zu verwenden. Ich habe viele Quellen gefunden, die besagen, dass Komponententests perfekt auf JS durchgeführt werden können, das von coffeescript kompiliert wird. Wie greifen Sie auf die Daten und die Logik des JS-Codes zu, wenn alles in eine anonyme Funktion eingebettet ist, um den Namensraum nicht zu verschmutzen? Ist die einzige Lösung, den Compiler jedes Mal mit dem Flag -b auszuführen?
Sie sollten die öffentliche Schnittstelle testen, die Sie über Ihr CoffeeScript-Modul bereitstellen. Wenn Ihr Modul Foo
heißt und zwei öffentliche Methoden, bar
und baz
, freigibt, können Sie sie folgendermaßen exportieren:
Natürlich gibt es andere Variationen dieses Musters. Siehe beispielsweise underscore.coffee . Jetzt, da Sie Ihre öffentliche Schnittstelle verfügbar gemacht haben, stellen Sie sie einfach Ihren Jasmine-Tests zur Verfügung. Wenn Sie beispielsweise Jasmine-Node verwenden, würden Sie Folgendes tun:
%Vor% Ihre Tests würden dann Foo.bar
und Foo.baz
aufrufen.
Es gibt nur sehr wenige Fälle, in denen es sinnvoll ist, -b
; Der normale Test gehört nicht dazu. linnsea ist ziemlich korrekt, dass Sie alles, was Sie testen, exportieren sollten (indem Sie es an exports
unter Node oder window
in einem Browser anhängen). Es ist das selbe wie jede Programmiersprache, wirklich.
Für Jasmine und CoffeeScript, besonders in Verbindung mit jQuery, sollten Sie sich das InstantJasmineCoffee -Projekt und dieser Blogeintrag .
>Ich bin gerade darüber gestolpert, aber wenn Sie mit Jasmine + CoffeeScript billig anfangen wollen, können Sie sich diese Skelett-Sinatra-App ansehen, die ich in Github veröffentlicht habe. Es verwendet einen Rack-Filter, um das CoffeeScript dynamisch zu kompilieren. Beispielspezifikationen & amp; Anweisungen enthalten: Ссылка
Tags und Links unit-testing coffeescript jasmine