Тестовый пример mocha chai для angularjs ui-route

Мне нужно покрыть конфигурационный файл angularJs через mocha chai

введите здесь описание изображения

Я старался

it('should load the page.', inject(function ($location, $rootScope, $state, $httpBackend) {
    $httpBackend.whenGET('scripts/select-line-module/views/select-line.html').respond('<div/>');
    var state = $state.get('selectLine');
    $rootScope.$digest();
    assert.isDefined(state.templateUrl()); 
    expect(state.templateUrl).toBe('scripts/select-line-module/views/select-line.html');
}));

Я могу покрыть функцию templateUrl, но тестовый пример не проходит ошибку: undefined не является функцией

введите здесь описание изображения

Я чувствую, что близок, но чего мне здесь не хватает?


person Mayank    schedule 25.02.2015    source источник


Ответы (2)


Ваше утверждение и ожидание изменены. Вы должны подтвердить, что функция templateUrl определена, и ожидать, что функция вернет строку.

assert.isDefined(state.templateUrl); ожидать(state.templateUrl()).toBe('скрипты/выбрать-линия-модуль/представления/выбрать-линия.html');

Однако можете ли вы проверить, определено ли состояние? Я думаю, что это может быть неопределенным.

person Carlos André Oliveira    schedule 25.02.2015

я сделал это как

it('should load the page.', inject(function ($state) {
    var state = $state.get('selectLine');
    assert.isDefined(state.templateUrl()); 
    expect(state.templateUrl()).to.equal('scripts/select-line-module/views/select-line.html');
}));

Это работает для меня

person Mayank    schedule 26.02.2015