天天看點

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請求的服務類進行單元測試