在量角器中,是否可以运行Angular模块功能?

问题描述:

我很新的Javascript和量角器。仍然试图让我的头简单的语法,所以原谅我,如果我在这里基地的方式。在量角器中,是否可以运行Angular模块功能?

所以我们的角度应用程序,有一个工厂生成吐司消息模块。我想在我的E2E测试期间禁用所有Toast消息。我们在工厂有一个功能来禁用吐司。这里有一些简化的代码。

//the module 
var module = angular.module('toast',[]); 

//the factory 
module.factory('tf',[function tf(){ 

//factory code 

//the function within the module's factory 
moduleFactory.enable = function(enable){ 
     isEnabled = enable; 
    }; 
}]); 

我的问题是,我可以访问量角器中的该功能将其变为false?

我一直在寻找,似乎嘲笑是如何做到这一点。类似于您禁用角动画的方法。

// Disable animations so e2e tests run more quickly 
var disableNgAnimate = function() { 
angular.module('disableNgAnimate', []).run(['$animate', function($animate) { 
$animate.enabled(false); 
}]); 
}; 

browser.addMockModule('disableNgAnimate', disableNgAnimate); 

不过,我与模块内访问该工厂的函数的语法挣扎...任何帮助,将不胜感激。

我相信我找到了解决方案给其他任何可能有类似问题的解决方案。

使用量角器的executeScript函数。

browser.executeScript(function() 
{ 
    return angular.element(document).injector().get('toastFactory').enableToasts(false); 
});