我在使用 MockBackend 检查单元测试中代码发送的 header 时遇到问题。
我正在测试中执行以下操作:
injectAsync([Http, XHRBackend], (http: Http, backend: MockBackend) => {
return new Promise((pass, fail) => {
var request: Request;
backend.connections.subscribe((c: MockConnection) => {
request = c.request;
c.mockRespond(new Response(new ResponseOptions()));
})
let req_headers = new Headers({'Authorization': 'Bearer foo'});
http.get('/', new ResponseOptions({headers: req_headers})).subscribe(
() => {
// I try to get the request headers here
console.log(request.headers);
pass();
},
fail
)
})
})
但是,当我尝试读回标题时,我得到一个空标题集。日志语句的结果为我提供了 Headers{_headersMap: Map{}}
。
我错过了什么?
最佳答案
事实上,它们在那里,但 headers 属性是一个 Map
所以你需要这样获取它:
// All headers
for (var key of connection.request.headers.keys()) {
console.log('- key = ' + key);
}
// Authorization header
var auth = connection.request.headers.get('Authorization');
console.log('auth = '+auth);
关于typescript - 如何使用 angular2 从 MockBackend 获取 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36769006/