3
我使用下面的模式上的角網站,量角器嘲諷一些端點:添加多個模擬模塊,「addMockModule」
// mock.js
// adding the mock module and passing it data
Mock.prototype.all = {
default: function() {
browser.addMockModule('httpBackendMock', mockModules.all, {
data: data
})
}
}
// mockmodules.js
// add dependencies to module and inject it
exports.all = function() {
$httpBackend.whenGET(/user/).respond(function() {
return [200, data.mockData.data];
});
$httpBackend.whenGET(/.*/).passThrough();
$httpBackend.whenPOST(/.*/).passThrough();
angular.module('httpBackendMock' ['ngMockE2E', 'sportsbook-app'])
.value('data', {
'mockData': arguments[0],
'count': 0
})
.run(runBlock);
runBlock.$inject = ['$httpBackend', 'data', 'eventDataSourceManager'];
}
// test-spec.js
// call mock from test
it("Mock", function() {
mock.all.default();
});
現在這工作正常,但我想成爲能夠通過使多個模塊發送不同的數據來添加更多的模塊。例如:
Mock.prototype.all = {
default: function() {
browser.addMockModule('httpBackendMock', mockModules.allDefault, {
data: data
})
},
user: function() {
browser.addMockModule('user', mockModules.allUser, {
userData: userData
})
}
}
it("Mock", function() {
mock.all.default();
mock.all.user();
});
像這樣,沒有模擬似乎工作。
而且硒服務器中,我可以看到兩個模塊的名字被發現:
Executing: [execute script: angular.resumeBootstrap(arguments[0]);, [[protractorBaseModule_, httpBackendMock, user]]])
起初我以爲這個問題是與
$httpBackend.whenGET(/.*/).passThrough();
$httpBackend.whenPOST(/.*/).passThrough();
嘗試添加這一個單獨的模塊並在所有其他模塊被調用後調用它,但仍然無效。有任何想法嗎?
我對此感到抱歉。 allDefault和allUser頁面對象具有唯一的模塊名稱標識符,例如:angular.module('allU')和angular.module('allD')。編輯主要問題以反映這一點。仍然無法弄清楚這個問題可能是什麼......我也錯了,只有最後一個模擬工作,實際上他們都不起作用(當我用相同的模塊名測試時,最後一個工作正常) – zalow517