天天看点

Angular如何对包含了HTTP请求的服务类进行单元测试

Angular如何对包含了HTTP请求的服务类进行单元测试
Angular如何对包含了HTTP请求的服务类进行单元测试
Angular如何对包含了HTTP请求的服务类进行单元测试
Angular如何对包含了HTTP请求的服务类进行单元测试
Angular如何对包含了HTTP请求的服务类进行单元测试

我们可以基于mockReq进行各种断言处理。

expect(mockReq.cancelled).toBeFalsy();

确认该请求没有被cancel

expect(mockReq.request.responseType).toEqual(‘json’);

确保响应类型是JSON

mockReq.flush(mockUsers)

使用flush传入的参数作为HTTP请求的返回参数:

Angular如何对包含了HTTP请求的服务类进行单元测试

flush执行完之后,才会触发getData返回的Observable的subscribe回调函数。

运行时时序:

(1) 先执行service.getData

Angular如何对包含了HTTP请求的服务类进行单元测试
Angular如何对包含了HTTP请求的服务类进行单元测试
Angular如何对包含了HTTP请求的服务类进行单元测试
Angular如何对包含了HTTP请求的服务类进行单元测试
Angular如何对包含了HTTP请求的服务类进行单元测试
Angular如何对包含了HTTP请求的服务类进行单元测试
Angular如何对包含了HTTP请求的服务类进行单元测试