我一直在與蜜蜂拼搏。這裏是我的測試qunit和httpBackend的角度測試
injector = angular.injector(['ngMock','ng', 'cockpit']);
var equal = QUnit.assert.equal;
test('loginService', function() {
var app, service, scope, httpBackend;
app = angular.module('cockpit');
app.config(function ($provide) {
$provide.decorator('httpBackend',
angular.mock.e2e.$httpBackendDecorator);
});
httpBackend = injector.get('$httpBackend');
httpBackend.when("PUT", "/login").respond({ userId: 23 });
service = injector.get('loginService');
service.$http = httpBackend;
service.getUserId('easy', 'path');
httpBackend.flush();
equal(service.userId, 23, 'populates userId property');
});
裏面的getUserId方法$ HTTP服務還沒有放方法,所以當我提出$ http.put調用,它將失敗。我必須錯誤地設置測試。
這就是我的觀點。如何使用$ http將$ httpbackend注入到服務中獲取數據的服務中?在$ httpBackend的AngularJS文檔中,它顯示了一個使用$ http的控制器和一個在其位置注入$ httpBackend的測試。當我嘗試這樣做時,我得到一個對象沒有put方法的錯誤。我可以看到$ httpBackend沒有put方法,那麼文檔中的示例如何工作? – pthalacker