gpt4 book ai didi

AngularJS Jasmine 测试 get-request

转载 作者:行者123 更新时间:2023-12-02 22:08:41 26 4
gpt4 key购买 nike

我有一个工厂来执行获取请求,我想测试一下。不幸的是, karma 测试告诉我,$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;
});
}
};
});

我的测试是这样的:

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)

最佳答案

您必须定义预期响应以及预期请求。它将具有以下形式:

$httpBackend.expectGET('/boxlist').respond(HTTP_STATUS_CODE, EXPECTED_RESPONSE);

HTTP_STATUS_CODE 是一个整数。EXPECTED_RESPONSE 是要返回的值(通常是对象文字)。

您只能定义其中之一。

看看ngMock httpBackend文档以获取更多信息。

关于AngularJS Jasmine 测试 get-request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22373973/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com