gpt4 book ai didi

angular - Protractor ,根据 api 请求使用 angular2 模拟后端

转载 作者:太空狗 更新时间:2023-10-29 16:51:55 24 4
gpt4 key购买 nike

我可以借助一些帮助来找到解决我的问题的方法。当它向 api 发出请求时,我需要模拟一些数据到我的 angular2 应用程序,我需要做类似的事情:

$httpBackend.when('GET', '/userbookings/').respond(my json file data);

问题是我在谷歌上能找到的所有内容,使用的是用于angularJS(angular 1)的$httpBackend。

有人知道如何在我的 E2E 测试中使用它吗(该应用程序是一个 angular2 应用程序)?我正在尝试使用 Protractor 或守夜人来做到这一点(已经尝试过这两种框架)

规范测试:

describe('Protractor Mocking bookings for angular2 site', function() {

var ngMockE2E = require('ng-mock-e2e');

var $httpBackend = ngMockE2E.$httpBackend;

beforeEach(function() {
ngMockE2E.addMockModule();
ngMockE2E.addAsDependencyForModule('myApp');
ngMockE2E.embedScript('/bower_components/angular-mocks/angular-mocks.js');
});


afterEach(function() {
ngMockE2E.clearMockModules();
});

it('Inject mock data of bookings', function() {

var EC = protractor.ExpectedConditions;
var global = require('../bin/globals.js');

// Bookings data in a json file which should be send as the response
var mockData = require('../testData.json');

browser.ignoreSynchronization = false;

$httpBackend.when('GET', '/userbookings').respond(mockData);

browser.get(global.so.enLoggedIn);

});

});

这个测试不会工作,因为它使用了一些 angular1 方式。已经展示了它,所以你可以看到我的测试是什么样子的。

希望有人能帮助我,因为很难找到一些使用 angular2 的人。

最佳答案

Protractor does not yet support adding mock modules for Angular 2 applications :

// TODO: support mock modules in Angular2. For now, error if someone
// has tried to use one.
if (self.mockModules_.length > 1) {
deferred.reject('Trying to load mock modules on an Angular2 app ' +
'is not yet supported.');
}

而且,我还为 TODO 创建了一个 github 问题以引起注意:

顺便说一句,这也意味着 protractor-http-mock 将无法工作,因为它依赖于 addMockModule internally .我亲自在示例 Angular2 应用程序上尝试了 protractor-http-mock,得到:

Failed: Trying to load mock modules on an Angular2 app is not yet supported.

http-backend-proxy 也是如此和 httpbackend包。


我想,虽然这个问题还没有解决,但你应该考虑启动一个代理,它可以充当你的 API 后端的一种“外部模拟”,还没有这样做就个人而言,查看更多信息:

关于angular - Protractor ,根据 api 请求使用 angular2 模拟后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36354233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com