Im пишет тесты с кармой + жасмин. Посмотрите на это:AngularJS и Jasmine, inject() вызывает ошибку
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
[email protected]/src/bower_components/angular/angular.js:321:24
[email protected]/src/bower_components/angular/angular.js:4592:12
[email protected]/src/bower_components/angular/angular.js:4514:30
[email protected]/src/bower_components/angular-mocks/angular-mocks.js:3067:60
[email protected]://localhost:9876/context.js:151:17
Вы должны открыть веб-клиент кармы и осмотреть его с помощью devtools для получения более читаемых стеков. По умолчанию вы можете найти его по адресу: http: // localhost: 9876/debug.html. Мое предположение о том, что ваш контроллер зависит от службы, которая не определена в модуле users. И что вы также должны вводить эту зависимость в свои тесты. – Pjetr
Uhm, но он падает, даже если я пытаюсь НЕ вводить контроллер. – brazorf
ах, но он по-прежнему работает, когда вы не помещаете описание в? Тогда я могу только предложить использовать Chrome для отладки ошибки, потому что это похоже на то, что она превзошла мои знания :) – Pjetr