Один тест Угловой контроллер Карма-Жасмин работает, но не другой

0

наконец, я получил тест на карму, работающий на угловом контроллере. Но если я попытаюсь выполнить почти тот же тест с другим контроллером, он не работает с сообщением об ошибке: Error: [ng:areq] Argument 'Test2Controller' is not a function, got undefined

рабочее испытание:

describe('TestController: - ', function() {
beforeEach(module('myApp'));
var scope, $controller, httpBackend;

beforeEach(inject(function ($rootScope, _$controller_, $httpBackend) {
    scope = $rootScope.$new();
    httpBackend = $httpBackend;
    $controller = _$controller_;
}));
afterEach(function () {
    httpBackend.verifyNoOutstandingExpectation();
    httpBackend.verifyNoOutstandingRequest();
});
describe('version testing; -', function() {
    it("tests the version ", function() {

        httpBackend.whenGET('url').respond(200, {"meta":{"apiVersion":"0.1","code":200,"errors":null}});
        var $scope = {};
        var controller = $controller('TestController', { $scope: $scope });
        httpBackend.flush();
        expect($scope.version.meta.apiVersion).toEqual('0.1');
        expect($scope.version1).toEqual('1');
    })
})
});

здесь все отлично работает. Но этого нет:

describe('Test2Controller: - ', function() {
beforeEach(module('myApp'));
var scope, $controller, httpBackend;

beforeEach(inject(function ($rootScope, _$controller_, $httpBackend) {
    scope = $rootScope.$new();
    httpBackend = $httpBackend;
    $controller = _$controller_;
}));
afterEach(function () {
    httpBackend.verifyNoOutstandingExpectation();
    httpBackend.verifyNoOutstandingRequest();
});
describe('test 2 testing; -', function() {
    it("tests the test2 ", function() {

        httpBackend.whenGET('url').respond(200, {"meta":{"apiVersion":"0.1","code":200,"errors":null}});
        var $scope = {};
        var controller = $controller('Test2Controller', { $scope: $scope });
        httpBackend.flush();
        expect($scope.testVal).toEqual('Test Value');
    })
})
});

Я также зарегистрировал тестовые файлы в конфигурации karma, но он просто работает для первого. Без тестовой среды (я имею в виду мое чистое угловое приложение) все, каждый контроллер, работает нормально. Так что я делаю неправильно?

Теги:
unit-testing
karma-jasmine

1 ответ

0

Мне интересно, правда ли сообщение об ошибке: нет "Test2Controller", по крайней мере, в этой ситуации. Возможно, это называется чем-то другим? Или, возможно, он живет в исходном файле, который вы не включили в karma.conf.js? Не могу сказать точно, но я предполагаю, что ваш тест в порядке, и проблема заключается в том, что карма не находит вашего контроллера.

Вы также можете попробовать кнопку отладки в запуске karma экземпляра браузера. Это открывает другую страницу, которую вы можете проверить в инструментах chrome dev или firebug или в вашем отладчике JavaScript. Держите погружение, чтобы увидеть, какая карма загружена, и вы можете обнаружить проблему. Надеюсь это поможет.

Ещё вопросы

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