我有一個工廠執行get請求,我想測試。不幸的是,業力測試告訴我沒有在$ httpBackend中定義的響應。AngularJS茉莉花測試get-request
AngularJs 1.2.14, 茉莉花2.0, 噶0.12.0
這裏是我的模塊,我想測試:
var appFactory = angular.module('appFactory', []);
appFactory.factory('boxListService', function($http){
return{
getList: function(){
return $http.get('/boxlist').then(function(result){
return result.data;
});
}
};
});
我的測試是這樣的:
describe('Module-Test', function() {
beforeEach(module('appFactory'));
it('should call $http.get in getList', inject(function (boxListService, $httpBackend){
$httpBackend.expectGET('/boxlist');
boxListService.getList();
$httpBackend.flush();
}));
});
消息:
Error: No response defined !
at $httpBackend (D:/nodeJS/host/test_app/src/public/js/libs/angular/angular-mock.js:1206:13)
我看了這個大約5次,我才意識到還需要在expectGET上聲明響應。我的印象是,whenGET是唯一需要申報的地方。可以肯定地說,我們必須對whenGET和expectGET兩者作出迴應嗎? – binarygiant