我可以使用一些帮助找到解决问题的方法.当它向api发出请求时,我需要向angular2应用程序模拟一些数据,我需要做类似的事情:
$httpBackend.when('GET', '/userbookings/').respond(my json file data);
Run Code Online (Sandbox Code Playgroud)
问题是我可以在谷歌上找到所有,使用$ httpBackend用于angularJS(角度1).
有没有人知道如何在我的E2E测试中使用它(该应用程序是一个angular2 applciation)?我正试图用量角器或夜间仪表做这个(尝试过两个框架)
规格测试:
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);
});
});
Run Code Online (Sandbox Code Playgroud)
这个测试不会起作用,因为它使用了一些angular1方式.已经展示了它,所以你可以看到我的测试看起来如何.
希望有人可以帮助我,因为很难找到一些与angular2合作的人.