【发布时间】:2017-11-29 13:18:48
【问题描述】:
我有一项服务每 500 毫秒从服务器轮询一次数据。为此我使用了Observable.interval()。
下面是我的代码。我想为此服务编写单元测试
service.ts:
pollData() {
Observable.interval(500).mergeMap(() =>
this._http
.get(url, { headers: headers })
.map((resp: Response) => resp.json())
});
Service.spec.ts:
it('should get the response correctly', async(inject(
[SomeService, MockBackend], (service, mockBackend) => {
mockBackend.connections.subscribe((connection: MockConnection) => {
connection.mockRespond(new Response(new ResponseOptions({ body:
mockResponse})));
});
const result = service.pollData();
result.subscribe(response => {
expect(response).toEqual(mockResponse);
});
}
)));
在运行 ng test 时遇到错误:
错误:超时 - 未在超时内调用异步回调 由 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定。
【问题讨论】:
标签: angular unit-testing karma-runner