angularjs - Protractor addMockModule 附加参数不起作用?

标签 angularjs testing protractor end-to-end ngmocke2e

这看起来很简单,但我不明白为什么这个简单的代码不起作用。

我正在添加一个模拟模块来模拟我的 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/

相关文章:

javascript - AngularJS $watch 仅在初始化时触发

javascript - Angular 和 JS 对于平等对象的定义并不一致

javascript - 如何正确覆盖AngularJS中的ExceptionHandler?

javascript - 如何从命令行覆盖 protractor.conf.js 值?

javascript - 重定向到另一个页面后循环中的陈旧元素引用

javascript - 将全局变量存储在单独的文件中以进行 Protractor 测试

javascript - Angularjs 替换现有的表情符号显示

angular - 如何告诉 Jasmine Marbles 将数组作为一个单元返回,而不是作为对观察者的两个单独调用

testing - React JSPM 测试框架

phpunit静态调用方法中的方法