0

我有一個AngularJS應用程序,它需要文件上傳,而$http不支持XMLHttpRequest.upload的特殊功能,我必須使用XMLHttpRequest執行文件上傳。

我的問題是:我可以使用$httpBackend單元測試通過new XMLHttpRequest()所做的請求嗎?

我做了一些測試,但此刻$httpBackend正在拋出錯誤。沒有調用$httpBackend.flush()它抱怨不滿意的請求,但添加flush,只是造成「沒有待處理的請求」錯誤。

廣泛使用搜索引擎並沒有給我一個答案,所以你能幫助我嗎?

回答

0

我懷疑沒有,但你仍然可以單元測試你的代碼,如果你重構它稍微:

  • 創建一個小工廠,返回一個new $window.XMLHttpRequest()

    在服務/控制器
  • 然後,而不是直接調用new XMLHttpRequest(),注入這家工廠當你需要調用上傳()

  • 您可以單元測試的服務/被嘲笑了工廠控制器並在測試前注入。

  • 你甚至可以通過用XMLHttpRequest構造函數嘲笑$window並在測試之前注入這個小工廠來進行單元測試。

相關問題