Я пишу тесты с кармой + жасмин. Посмотри на это:
describe("users module", function(){
var scope, controller;
beforeEach(function () {
module('users');
});
it("should work", function(){
});
});
Вышеприведенный код работает, и я получаю этот вывод
PhantomJS 2.1.1 (Linux 0.0.0): Executed 1 of 1 SUCCESS (0.038 secs / 0.001 secs)
То, что мне действительно нужно сделать, - это тестирование модулей контроллеров. Поэтому я добавляю:
describe("users module", function(){
var scope, controller;
beforeEach(function () {
module('users');
});
describe("Users list", function(){
beforeEach(inject(function ($rootScope, $controller) {
scope = $rootScope.$new();
controller = $controller('ctrl', {
'$scope': scope
});
}));
it("should work", function(){
});
});
});
Когда я добавляю второй блок beforeEach
я получаю ошибку инжекции. Свалка ошибок огромна, она начинается так:
Error: [$injector:modulerr] http://errors.angularjs.org/1.5.7/$injector/modulerr?p0=users
Я попытался максимально сушить код, но даже следующее приводит к той же ошибке:
describe("users module", function(){
var scope, controller;
beforeEach(function () {
module('users');
});
describe("Users list", function(){
beforeEach(inject(function () {
}));
it("should work", function(){
});
});
});
Что случилось с моим кодом?
== EDIT ==
Если я переключусь на неопределенную угловую версию, я получаю читаемый сбой ошибок, который выглядит следующим образом:
public/src/bower_components/angular/angular.js:4632:53
forEach@public/src/bower_components/angular/angular.js:321:24
loadModules@public/src/bower_components/angular/angular.js:4592:12
createInjector@public/src/bower_components/angular/angular.js:4514:30
workFn@public/src/bower_components/angular-mocks/angular-mocks.js:3067:60
loaded@http://localhost:9876/context.js:151:17
Оказалось, что я ошибся в зависимости от модуля.
Урок: если угловое высказывание имеет проблемы с созданием users
модулей, это, скорее всего, верно, и вы должны сначала изучить эту ошибку.