Тестирование приложения AngularJS Express
У меня проблема с тестированием моего приложения с обоими jasmine-node
а также mocha
(с zombie
). Дело в том angular
не работает с этой тестовой средой - когда browser.visit "http://localhost:3000/"
он отображает только макет и не отображает ссылки на шаблоны. Я предполагаю, что javascript вообще не работает в браузере (я имею в виду объект зомби). Мой тест Есть ли способ заставить его работать? Или проблема в другом?
В спецификации жасмина, которую я скопировал из другой спецификации проекта, возникает ошибка:
/home/alder/Node/angular-express-coffee/spec/app_spec.coffee:12
throw error;
^
ReferenceError: angular is not defined
at /js/services.js:4:3
at /js/services.js:6:4
in /js/services.js
Так что я думаю, что JavaScript тоже не работает.
Обновление: я добавляю опцию отладки и вот что она отображает:
➜ angular-express-coffee git:(master) ✗ mocha --require should --compilers coffee:coffee-script --colors -R spec --ui bdd
Given I am a new user
When I visit the home page
Zombie: GET http://localhost:3000/newPost => 200
Zombie: GET http://localhost:3000/ => 200
Zombie: GET http://localhost:3000/js/lib/jquery-1.7.2.min.js => 200
Zombie: GET http://localhost:3000/js/lib/bootstrap.min.js => 200
Zombie: GET http://localhost:3000/js/lib/angular.min.js => 200
Zombie: GET http://localhost:3000/js/app.js => 200
Zombie: GET http://localhost:3000/js/controllers.js => 200
Zombie: Unexpected token ILLEGAL SyntaxError: Unexpected token ILLEGAL
in /js/controllers.js
Zombie: GET http://localhost:3000/js/lib/jquery-1.7.2.min.js => 200
Zombie: Unexpected token ILLEGAL SyntaxError: Unexpected token ILLEGAL
in /js/lib/jquery-1.7.2.min.js
Zombie: GET http://localhost:3000/js/filters.js => 200
Zombie: GET http://localhost:3000/js/directives.js => 200
Zombie: Unexpected token ILLEGAL SyntaxError: Unexpected token ILLEGAL
in /js/directives.js
Zombie: Unexpected token ILLEGAL SyntaxError: Unexpected token ILLEGAL
in /js/filters.js
Zombie: GET http://localhost:3000/js/lib/bootstrap.min.js => 200
Zombie: Unexpected token ILLEGAL SyntaxError: Unexpected token ILLEGAL
in /js/lib/bootstrap.min.js
Zombie: GET http://localhost:3000/js/lib/angular.min.js => 200
Zombie: Unexpected token ILLEGAL SyntaxError: Unexpected token ILLEGAL
in /js/lib/angular.min.js
Zombie: GET http://localhost:3000/js/services.js => 200
Zombie: GET http://localhost:3000/js/filters.js => 200
Zombie: GET http://localhost:3000/js/directives.js => 200
Zombie: GET http://localhost:3000/js/controllers.js => 200
Zombie: GET http://localhost:3000/js/app.js => 200
Zombie: Unexpected token ILLEGAL SyntaxError: Unexpected token ILLEGAL
in /js/app.js
Zombie: Unexpected token ILLEGAL SyntaxError: Unexpected token ILLEGAL
in /js/controllers.js
Zombie: Unexpected token ILLEGAL SyntaxError: Unexpected token ILLEGAL
in /js/directives.js
Zombie: Unexpected token ILLEGAL SyntaxError: Unexpected token ILLEGAL
in /js/filters.js
Zombie: GET http://localhost:3000/js/services.js => 200
Возможно проблема в coffeescript, но у меня была возможность добавить к мокко. И есть ли способ протестировать угловые приложения без JsTestDriver, распространяемой командой Angular.
Обновлено. Я изменил утверждения об ошибках на browser.errors.should.be.empty
и это показало мне ошибку:
1) Given I am a new user When I visit the home page Then browser status shold be ok:
AssertionError: expected [ [Error: Unexpected token ILLEGAL],
[Error: Unexpected token ILLEGAL],
[Error: Unexpected token ILLEGAL],
[Error: Unexpected token ILLEGAL],
[Error: Unexpected token ILLEGAL],
[Error: Unexpected token ILLEGAL],
[Error: Unexpected token ILLEGAL],
[Error: angular is not defined] ] to be empty
at Object.empty (/home/alder/Node/angular-express-coffee/node_modules/should/lib/should.js:229:10)
at Context.<anonymous> (/home/alder/Node/angular-express-coffee/test/app_test.coffee:31:40)
at Test.Runnable.run (/usr/lib/node_modules/mocha/lib/runnable.js:184:32)
at Runner.runTest (/usr/lib/node_modules/mocha/lib/runner.js:300:10)
at Runner.runTests.next (/usr/lib/node_modules/mocha/lib/runner.js:346:12)
at next (/usr/lib/node_modules/mocha/lib/runner.js:228:14)
at Runner.hooks (/usr/lib/node_modules/mocha/lib/runner.js:237:7)
at next (/usr/lib/node_modules/mocha/lib/runner.js:185:23)
at Runner.hook (/usr/lib/node_modules/mocha/lib/runner.js:205:5)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
Последнее обновление: проблема была в конвейере активов, все js
был отключен для Zombie
браузер. Теперь я перехожу на JS от кофе, и это работает. Но я предпочитаю кофе, так что если кто-нибудь может решить его, я буду благодарен.
2 ответа
Может ли это быть из-за мокко? Я слышал, что это может вызвать проблемы из-за его имени...