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
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
.
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
Wenn Sie die von Yeoman generierte karma.conf.js
-Datei sehen, sehen Sie, dass Bower-Komponenten nicht automatisch hinzugefügt werden.
Fügen Sie einfach den Unterstrich-Ordner hinzu und Sie werden keine Probleme haben.
Tags und Links angularjs unit-testing gruntjs underscore.js karma-runner