Tests für AngularJS mit UnderscoreJS schreiben

8

Ich habe angefangen zu lernen, wie man angular apps testet, und bin auf einige Probleme gestoßen.

Ich habe eine Angular-App mit Yeoman erstellt. yo angular --minsafe AppName

Dann wurde ein Service yo angular:service MyService

generiert

Schrieb eine einfache Methode im Dienst und einen Test dafür, nur um sicherzustellen, dass alles funktionierte. Ich lief grunt test und die Tests bestanden.

Jetzt wird es interessant, als ich Underscore mit bower install underscore zum Mix hinzugefügt habe und ein <script> -Tag dafür in index.html hinzugefügt habe. Dann fügte ich der Servicemethode einen einfachen Code hinzu, nur _.map([1,2,3], function(el){return el+1}); , um zu sehen, ob Underscore funktionierte.

Ich habe die Tests erneut ausgeführt grunt test und es ist fehlgeschlagen, dass _ is not defined .

zu sagen

Ich habe mir gedacht, dass Underscore die _ Variable an das window-Objekt anhängt, damit es für den Test zur Verfügung steht. Liege ich falsch?

Auch wenn ich die Anwendung im Browser ausgeführt habe, wurde Underscore definiert und funktioniert.

Also, meine Frage ist, wie testen Sie eine Angular App, die Underscore verwendet? Ist das ein häufiges Problem oder mache ich etwas falsch?

Danke, Petar

    
JavaScript Warrior 18.09.2013, 20:18
quelle

2 Antworten

9

Wenn Sie die von Yeoman generierte karma.conf.js -Datei sehen, sehen Sie, dass Bower-Komponenten nicht automatisch hinzugefügt werden.

%Vor%

Fügen Sie einfach den Unterstrich-Ordner hinzu und Sie werden keine Probleme haben.

    
jjperezaguinaga 18.09.2013, 21:11
quelle
1

Die Verwendung von Konstanten wie JASMINE oder JASMINE_ADAPTER ist in der Jasmine-Version vor 2.0 veraltet. Verwenden Sie stattdessen frameworks: ['jasmine'] in der karma.conf.js -Datei.

    
OliverKK 22.05.2014 13:36
quelle