我需要測試在Angular 1.5.9下使用jasmine/karma實現的內部角度服務。
我需要編寫一個測試來檢查特定服務函數的響應是否如預期的那樣。爲此,我正在構建一個模擬對象,實例化該服務,調用要測試的函數並使用expect().toBe()
來檢查返回的值。
不幸的是,該服務打了很多電話給自己的功能,其中許多電話使用角度服務進一步撥打電話。它這樣做是爲了填充用戶數據,區域設置和其他定製產品信息等對象。我只想說我不能將服務重構爲更好的架構;我必須簡單地構建這個測試。
因爲有這麼多的電話$http
我打算嘲笑所有會要求使用一系列的線像這樣的數據:
var mockGetCartData = { "d": null, "message": null }; // at the top of the describe
$httpBackend.when('GET', /(.*)\/order\/api\/v1\/GetCart/).respond(200, mockGetCartData); // in the beforeEach
當我打電話的功能進行測試,我馬上打電話$httpBackend.flush()
但是,由於測試失敗,我擔心我需要做的是在下一個進行之前導致每個(僞造的)$http
調用刷新。
是否需要執行此操作或設置所有$httpBackend.when().respond()
條目,然後根據測試功能進行操作,然後調用單個的flush()
就足夠了?如果這還不夠,我該怎麼辦?