我正在量角器测试中构建ngMock httpBackend。
var mockJson = require(projectRoot + 'mock/load.json');
var mockResource = function() {
angular.module('aMockObject', ['myApp', 'ngMockE2E'])
.run(function($httpBackend) {
$httpBackend.whenGET('a/path').respond(mockJson);
});
};
模拟响应的默认JSON对象需要从文件中加载。
但是,$ httpBackend代码实际上是在浏览器上下文中执行的,而不是在Protractor脚本上下文中执行的,因此该mockJson
变量未定义。
还有其他方法可以使这项工作吗?我所能想到的只是某种注入的脚本标记,可以在浏览器上下文中加载json文件。
您可以使用addMockModule在量角器和应用程序之间传递数据:
file.json
{
some_property: 'value'
}
aMockObject.js:
exports.module = function (data) {
angular.module('aMockObject', ['myApp', 'ngMockE2E'])
.run(function($httpBackend) {
$httpBackend.whenGET('a/path').respond(data);
});
};
初始化函数:
var aMockObject = require('aMockObject');
var file = require('file.json');
browser.addMockModule('aMockObject', aMockObject.module, file);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句