我尝试将我的独立量角器项目设置为模拟我的一些后端请求。因此,我在 protractor.conf.js 的browser.addMockModule('httpBackend', function() {
angular.module('httpBackend', ['myApp', 'ngMockE2E']).run(function($httpBackend) {
$httpBackend.whenPOST(/^requests\/*/).respond(function(method, url, data) {
var obj = {"msg": "Response!"};
return [200, JSON.stringify(obj), {}];
});
})
})
函数中添加了respond()
并附加了另一个模块:
200 OK
这让我可以拦截任何请求,但我没有得到我想要在{{1}}中返回的内容。我似乎只是得到{{1}}。
我做错了什么?
答案 0 :(得分:1)
只是为了让你知道我是如何解决的:
文档说出以下内容:
response方法接受一组要返回的静态数据或一个可以返回包含响应状态(数字),响应数据(字符串),响应头(Object)和状态文本(字符串)的数组的函数)。
在我的情况下,标题对象似乎不是可选的,我最后在返回数组之前自己设置它:
browser.addMockModule('httpBackend', function() {
angular.module('httpBackend', ['myApp', 'ngMockE2E']).run(function($httpBackend) {
$httpBackend.whenPOST(/^requests\/*/).respond(function(method, url, data) {
var obj = {"msg": "Response!"},
resHeader = {
"Cache-Control": "no-cache, no-store, max-age=0",
"Date": "Tue, 24 Nov 2015 17:08:57 GMT",
"Pragma": "no-cache",
"Transfer-Encoding": "chunked",
"Content-Type": "application/json; charset=UTF-8",
"Expires": "Thu, 01 Jan 1970 00:00:00 GMT",
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "origin,x-requested-with,access-control-request-headers,content-type,access-control-request-method,accept",
"Access-Control-Allow-Methods": "POST, GET, OPTIONS, DELETE",
"Access-Control-Credentials": "true",
"Content-Language": "de-DE",
"Access-Control-Max-Age": "3600"
};
return [200, JSON.stringify(obj), resHeader];
});
})
})
任何人都知道为什么这是必要的或者哪些属性已经过时了?