这看起来很简单,但我不明白为什么这个简单的代码不起作用。
我正在添加一个模拟模块来模拟我的 Angular E2E 测试中的 API 后端。我正在使用 Protractor 1.6.0。我需要将额外的参数传递给模拟模块,根据 Protractor 文档,只需将它们作为额外参数发送即可。但是,我的函数声称它没有参数...
var mock = function() {
// This is undefined and arguments.length is 0....why???
var env = arguments[0];
var mocks = angular.module('mocks.login', ['MyApp', 'ngMockE2E']);
mocks.run(function($httpBackend) {
$httpBackend.whenGET(env.apiBase + '/companies').respond([]);
});
};
browser.addMockModule('mocks.login', mock, {apiBase: ""});
如果重要的话,我会在 onPrepare 的 Protractor 配置文件中执行此操作,因为我正在尝试模拟用户登录期间使用的 API 调用。任何帮助将不胜感激。
最佳答案
Appearantely args 应该作为数组传递。 这就是它对我有用的方式:
var test = {
val1: 'val1',
val2: 'val2'
};
browser.addMockModule('mockModule', function( args) {
angular.module('mockModule', [])
.value('TEST', args[0]);
}, [test]);
关于angularjs - Protractor addMockModule 附加参数不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27883577/