Как смоделировать ng-grid при юнит-тестировании контроллера

В настоящее время я пытаюсь написать тесты для существующих блоков кода и сталкиваюсь с проблемой с контроллером, который имеет вложенную сетку ng внутри него. Проблема исходит от контроллера, пытающегося взаимодействовать с сеткой при инициализации.

Тестирование программного обеспечения
[email protected]
[email protected]
[email protected]
[email protected]

Мой тест:

define(["angularjs", "angular-mocks", "jquery",
    "js/3.0/report.app",
    "js/3.0/report.controller",
    "js/3.0/report.columns"
],
    function(angular, ngMocks, jquery, oARModule, oARCtrl, ARColumns) {
        "use strict";

        describe("Report Center Unit Tests", function() {
            var oModule;

            beforeEach(function() {
                oModule = angular.module("advertiser_report");
                module("advertiser_report");
            });

            it("Advertiser Report Module should be registered", function() {
                expect(oModule).not.toBeNull();
            });

            describe("Advertiser Report Controller", function() {
                var oCtrl, scope;

                beforeEach(inject(function($rootScope, $controller, $compile) {
                    var el = document.createElement('div');
                     el.setAttribute('ng-grid','gridOptions');
                     el.className = 'gridStyle';
                    scope = $rootScope.$new();
                    $compile(el)(scope);
                    oCtrl = $controller('ARController', {
                        $scope: scope
                    });
                }));

                it("Advertiser Report controller should be registered", function() {
                    expect(oCtrl).not.toBeNull();
                });
            });
        });
    });

Вы увидите, где я пытался создать и скомпилировать элемент с атрибутом ng-grid. Без этого я получаю следующую ошибку:

Ошибка типа: не удается прочитать свойство 'столбцы' неопределенного

Что является результатом попытки контроллера вызвать такие вещи, как
$ Scope.gridOptions. $ GridScope.columns.each

Поэтому я добавил создание div с атрибутом ng-grid и получил новую ошибку:

TypeError: Невозможно установить свойство 'gridDim' из неопределенного

Итак, я попытался добавить scope.gridOptions перед вызовом $ controller, но это вернуло меня к исходной ошибке. Я искал способ сделать эту работу без переписывания контроллера и / или шаблонов, так как они в настоящее время работают правильно в производстве.

Ответы на вопрос(2)

Ваш ответ на вопрос