Man*_*sen 24 protractor nightwatch.js angular
我可以使用一些帮助找到解决问题的方法.当它向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合作的人.
ale*_*cxe 24
Protractor 还不支持为Angular 2应用程序添加模拟模块:
// 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.');
}
Run Code Online (Sandbox Code Playgroud)
并且,我还为TODO创建了一个github问题以引起注意:
顺便说一句,这也意味着它protractor-http-mock
不会起作用,因为它依赖于addMockModule
内部.我个人试过protractor-http-mock
一个示例Angular2应用程序,得到:
失败:尚不支持尝试在Angular2应用程序上加载模拟模块.
对于http-backend-proxy
和httpbackend
包也是如此.
我想,虽然这个问题还没有解决,你应该考虑启动一个代理,它可以作为你的API后端的"外部模拟",但没有亲自完成,请参阅:
归档时间: |
|
查看次数: |
11254 次 |
最近记录: |