有人有关于如何在 Protractor 测试中 $rootScope.$broadcast 事件的工作示例吗?
我知道 Protractor 不用于此,我应该使用 Karma 进行单元测试。但情况是我需要在 Protractor 测试中广播一个事件。为此,我想我需要获取 $rootScope。但我不知道如何在 Protractor 中执行此操作,经过长时间的搜索,我未能在互联网上找到答案。
我猜下面是关于单元测试的。 Protractor 中没有注入(inject)。
var rootScope;
beforeEach(inject(function($injector) {
rootScope = $injector.get('$rootScope');
}));
$rootScope.$broadcast("EVENT_TO_TEST", other, possible, args);
希望解决方案存在。
最佳答案
您可以通过这种方式在浏览器中运行脚本:
browser.executeScript("
angular.element('body').injector().get('$rootScope').$broadcast(...);
");
或者使用不同的语法来获取根作用域:
browser.executeScript("
angular.element('body').scope().$root.$broadcast(...);
");
您可以用任何包含范围的元素替换 body
。
关于angularjs - 如何在 Protractor 中 $rootScope.$broadcast 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37296722/