簡體   English   中英

在QUnit測試中獲取$ httpBackend

[英]Obtaining $httpBackend in QUnit tests

我正在為Angular控制器編寫QUnit測試。 在模塊的setup函數中,我編寫了以下語句來獲取$ httpBackend的對象:

 var injector = angular.injector(['ng']);
 var httpBackend = injector.get('$httpBackend');

在測試中,GET的模擬響應配置如下:

httpBackend.expectGET(url).respond([]);

測試規范在此語句中失敗,並顯示錯誤:對象不支持屬性或方法expectGET

我能夠使用相同的噴射器參考來獲得其他對象,如控制器,示波器。

我在這里錯過了嗎?

我問斯科特-阿倫這個問題,他回答說我用的jsfiddle ,解決了這個問題。 他說當我們在QUnit測試中使用$ httpBackend或angular-mocks.js中定義的任何其他模擬時,以下裝飾器是必不可少的:

$provide.decorator('$httpBackend', angular.mock.e2e.$httpBackendDecorator);

我在示例應用程序中使用了這種方法並在博客中寫了我的學習內容: http//sravi-kiran.blogspot.com/2013/06/UnitTestingAngularJsControllerUsingQUnitAndSinon.html

您必須設置angular以使用angular-mocks.js中$ httpBackend ,其中包含expectGET方法。

但根據文件,它是“ 只有茉莉花可用 ”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM