我可以用一些帮助来找到我的问题的解决方案。我需要向我的angular2应用程序模拟一些数据,当它向api发出请求时,我需要做一些像:
$httpBackend.when('GET','/userbookings/').respond(my json file data);
问题是,我可以在google上找到,使用用于angularJS(角度1)的$ httpBackend。
有没有人知道我如何能够在我的E2E测试中工作(应用程序是一个角度2的应用程序)?我试图用量角器或夜视仪(尝试两个框架)
规格测试:
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的工作。
量角器
does not yet support adding mock modules for Angular 2 applications:
原文链接:/angularjs/144266.html// 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问题来引起注意:
> Support adding mock modules to Angular 2 applications
顺便说一下,这也意味着量角器http-mock不会工作,因为它依赖于addMockModule internally.我亲自试用了一个示例Angular2应用程序的量角器http-mock,得到:
Failed: Trying to load mock modules on an Angular2 app is not yet supported.
http-backend-proxy
和httpbackend
套件也是如此。
我猜,虽然这个问题还没有解决,你应该考虑发起一个代理,作为一个“外部模拟”你的API后端,没有做到这一点,看到更多的:
> Running AngularJS Protractor with proxy to https
> Mocking and Stubbing with protractor