Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJs量角器:将ngMockE2E与手动引导的应用程序一起使用_Javascript_Angularjs_Protractor - Fatal编程技术网

Javascript AngularJs量角器:将ngMockE2E与手动引导的应用程序一起使用

Javascript AngularJs量角器:将ngMockE2E与手动引导的应用程序一起使用,javascript,angularjs,protractor,Javascript,Angularjs,Protractor,我试图使用量角器模拟angularjs服务响应的数据。通过使用以下技术,我已经能够在其他应用程序中成功地做到这一点 创建可通过Gragrator.addMockModule配置的模拟模块 var httpBackendMock = function() { angular.module('mockBackend', ['ngMockE2E', 'MyApp']) .value('configData', arguments[0]) .run(function($http

我试图使用量角器模拟angularjs服务响应的数据。通过使用以下技术,我已经能够在其他应用程序中成功地做到这一点

创建可通过Gragrator.addMockModule配置的模拟模块

 var httpBackendMock = function() {
    angular.module('mockBackend', ['ngMockE2E', 'MyApp'])
    .value('configData', arguments[0])
    .run(function($httpBackend,configData) {
        console.log('bootstrapped!');
        $httpBackend.whenPOST(/.*/).respond(configData.postHeader, configData.postResponse);
    });
};
module.exports.httpBackendMock = httpBackendMock;
然后创建一个如下所示的量角器测试

describe('Mocking an httpbackend', function() {

var sampleData = require('./sampleData/blog/normalLanding.json');
var configObject = require('./utils/backendConfig.json');//passed To addMockModule to be accessed via arguments[0]
var MyMockedBackend = require('./utils/httpBackendMock.js');

var ptor = protractor.getInstance();

configObject.postHeader = 200;
configObject.postResponse = sampleData;

 it('Should mock a backnd', function(){
     ptor.addMockModule('mockBackend', MyMockBackend.httpBackendMock, configObject);
     ptor.get('/blog');
    });
});
这对于一个应用程序来说非常有效

  • 页面上运行的唯一角度应用程序
  • 是通过ng应用程序引导的
但是,当使用手动引导的应用程序时,该应用程序调用并返回实际服务的结果,而不是期望的模拟响应。此外,不会抛出任何错误。例如,我试图用相同的数据响应所有POST请求

我在配置文件中设置了量角器
rootElement
,用于标记应用程序引导

这种设置/方法有什么特别的错误吗?或者它可能是一个与使用手动引导的应用程序调用addMockModule有关的量角器执行顺序的问题

这里有一个指向github repo的链接,其中包含Angular网站上Angular Phonecat教程的一个工作示例。示例见test/e2e/utils和scenerios.js


干杯

检查这个答案是否对你有帮助:发布这个问题一段时间;不确定是否仍然相关。