AngularJS и Jasmine, inject () вызывают ошибку

0

Я пишу тесты с кармой + жасмин. Посмотри на это:

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
  • 0
    Вы должны открыть веб-клиент кармы и проверить его вместе со своими devtools на предмет более удобочитаемых стеков. По умолчанию вы можете найти его по адресу: localhost: 9876 / debug.html . Я полагаю, что ваш контроллер зависит от сервиса, который не определен в модуле пользователей. И что вы должны внедрить эту зависимость и в свои тесты.
  • 1
    Хм, но происходит сбой, даже если я пытаюсь НЕ вводить контроллер.
Показать ещё 3 комментария
Теги:
karma-jasmine
jasmine

1 ответ

2

Оказалось, что я ошибся в зависимости от модуля.

Урок: если угловое высказывание имеет проблемы с созданием users модулей, это, скорее всего, верно, и вы должны сначала изучить эту ошибку.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню