【发布时间】:2021-12-19 12:28:21
【问题描述】:
我想编写一个单元测试来检查 http 请求的标头。但是,当我尝试访问请求标头时,测试总是以错误结束:
it('should have my header', () => {
httpClient.get('/someURL').subscribe();
const req = httpTestingController.match({ method: 'get' });
console.log(req[0].request.headers);
expect(req[0].request.headers.has('Custom-Header')).toEqual(true);
httpTestingController.verify();
});
单元测试失败并出现以下错误:
TypeError: Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.
我尝试了各种方法,但我总是在访问标题的“预期”行中收到此错误。当我在控制台中记录标题时,它看起来像这样:
LOG: HttpHeaders{normalizedNames: Map{}, lazyUpdate: [Object{name: ..., value: ..., op: ...}], headers: Map{}, lazyInit: HttpHeaders{normalizedNames: Map{}, lazyUpdate: null, headers: Map{}}}
【问题讨论】:
标签: angular karma-jasmine angular-test