Подтвердить что ты не робот

Проверка кармы: TypeError: Попытка присвоить свойство readonly

Когда я пытаюсь выполнить unit test мой контроллер, я получаю сообщение об ошибке. Когда я отлаживаю тестовый файл, ожидаю, что получаю ожидаемое значение, но его сбой при ошибке ниже. Что мне здесь не хватает или я тестирую контроллер переменная неправильно?

Мой spec файл находится ниже

'use strict';
describe('Information.controller', function () {
beforeEach(angular.mock.module('asp'));
var InformationController, scope;

beforeEach(inject(function($controller, $rootScope) {
    scope = $rootScope.$new();
    InformationController = $controller('InformationController', {
        $scope: scope
    });
}));

fit('Should remove the object without info from the  object', function () {
    InformationController.Data = [
        {
            "ban": "03745645455",
            "accountNo": "0000drgyt456456565",
            "id": "2c4cc5e8-f360367"
        },
        {
            "ban": "27346fgh9080",
            "accountNo": "000456456ytr655680",
            "id": "2c4cc8ae-50bbf360367"
        }
    ];
    InformationController.banList = InformationController.Data.map((value, index) => (value && value.ban ? {'id': index, 'text': value.ban} : null))
    .filter(value => value);
    expect(InformationController.banList.length).toBe(3);
});
});
4b9b3361

Ответ 1

Ошибка readonly вызвана областью действия scope.page(в моем InformationController) undefined, а затем код пытается присвоить свойство undefined.Hess измененный beforeEach блок, как показано ниже

beforeEach(inject(function ($controller, $rootScope) {
        scope = $rootScope.$new();
        scope.page3 = {};
        InformationController = $controller('InformationController', {
            $scope: scope
        });
    }));

Это решило проблему.