如何在量角器

时间:2016-05-18 10:20:28

标签: angularjs testing protractor

有没有人在Protractor测试中有一个如何$ rootScope。$广播事件的工作示例?

我知道Protractor不用于此,我应该使用Karma进行单元测试。但情况是我需要在Protractor测试中广播一个事件。为此,我想要获得$ rootScope。但我不知道如何在量角器中做到这一点,经过长时间的搜索后,我在互联网上找不到答案。

我想以下是单元测试。量角器中没有注入。

var rootScope;
beforeEach(inject(function($injector) {
    rootScope = $injector.get('$rootScope');
}));

$rootScope.$broadcast("EVENT_TO_TEST", other, possible, args);

希望解决方案存在。

1 个答案:

答案 0 :(得分:6)

您可以通过以下方式在浏览器中运行脚本:

browser.executeScript("
  angular.element('body').injector().get('$rootScope').$broadcast(...);
");

或者使用不同的语法来获取根范围:

browser.executeScript("
  angular.element('body').scope().$root.$broadcast(...);
");

您可以将body替换为包含范围的元素。