【发布时间】:2019-04-15 12:14:22
【问题描述】:
我正在尝试测试在根模块的另一个子模块的子模块中定义的指令。我无法访问指令控制器中定义的范围变量。问题似乎在于从测试内部访问范围。
主模块名为oppia,它有一个名为stateEditorModule的子模块,这个子模块还有一个名为stateContentEditorModule的子模块。我尝试注入 $scope 而不是 $rootScope 但它似乎不起作用。
这是测试代码:
beforeEach(function() {
module('oppia');
module('stateEditorModule');
module('stateContentEditorModule');
});
outerScope = $rootScope.$new();
var elem = angular.element(
'<state-content-editor>' +
'</state-content-editor>');
var compiledElem = $compile(elem)(outerScope);
outerScope.$digest();
ctrlScope = compiledElem[0].getControllerScope();
}));
fit('should start with the content editor not being open', function() {
expect(ctrlScope.contentEditorIsOpen).toBe(false);
});
contentEditorIsOpen 变量在指令的范围内定义。
contentEditorIsOpen 在代码的当前状态下是不可访问的。
我在这个问题上坚持了很长时间,如果有人可以提供解决方案或指出有关如何测试多模块 AngularJS 应用程序的文档,我将不胜感激。
【问题讨论】:
标签: angularjs unit-testing angularjs-scope karma-jasmine modularity