Макет angular.element в тестах кармы - PullRequest
0 голосов
/ 22 января 2019

У меня есть функция в контроллере, который имеет вызов

var loadCtrlScope = angular.element($("#selectAllButton")).scope();

Я пытаюсь смоделировать это, выполнив:

var loadCtrlScope;

beforeEach(function () {    
 loadCtrlScope = angular.element('<button type="button" class="btn btn- 
 default" id="selectAllButton" ng-click="onSelectAll()">Select All</button>');            

 $compile(loadCtrlScope)(scope);

 getLoadScopeSpy = sinon.stub(angular, 'element').returns(loadCtrlScope);
}

afterEach(function(){
 getLoadScopeSpy.restore();
}

Однако, когда я вызываю функцию в тестеи печатать loadCtrlScope в консоли, я получаю ответ:

Область {$$ childTail: ноль, $$ childHead: ноль, $$ nextSibling: ноль, $$ watchers: [Object {fn: ..., last: ..., get: ..., exp: ..., eq: ...}], $$ listeners: Object {}, $$ listenerCount: Object {}, $$ watchersCount: 1, $ id: 59, $$ ChildScope: null, $ parent: Scope {$ id: 58, $$ childTail: Scope {$$ childTail: ..., $$ childHead: ..., $$ nextSibling:..., $$ watchers: ..., $$ listeners: ..., $$ listenerCount: ..., $$ watchersCount: ..., $ id: ..., $$ ChildScope: ..., $ parent: ..., $$ prevSibling: ..., classNameForTextArea: ...

Этот ответ не включает в себя все поля, которые находятся в контроллере.

Если я попытаюсь вручную указать значение поля, используя loadCtrlScope.devicesWithPSArray = [], оно не будет работать.

...