mar*_*cel 14 jasmine angularjs karma-runner karma-jasmine
我有一个工厂来执行get请求,我想测试一下.不幸的是,业力测试告诉我$ httpBackend没有定义响应.
AngularJs 1.2.14,Jasmine 2.0,Karma 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;
});
}
};
});
Run Code Online (Sandbox Code Playgroud)
我的测试是这样的:
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();
}));
});
Run Code Online (Sandbox Code Playgroud)
信息:
Error: No response defined !
at $httpBackend (D:/nodeJS/host/test_app/src/public/js/libs/angular/angular-mock.js:1206:13)
Run Code Online (Sandbox Code Playgroud)
Pas*_*rer 25
您必须定义预期响应以及预期请求.它将具有以下形式:
$httpBackend.expectGET('/boxlist').respond(HTTP_STATUS_CODE, EXPECTED_RESPONSE);
Run Code Online (Sandbox Code Playgroud)
HTTP_STATUS_CODE是一个整数.EXPECTED_RESPONSE是要返回的值(通常是Object Literal).
您可以只定义其中一个.
有关更多信息,请查看ngMock httpBackend文档.
归档时间: |
|
查看次数: |
7931 次 |
最近记录: |