Javascript 错误:[$resource:badcfg]使用Jasmine测试资源服务时查询
测试REST服务时,我收到以下错误消息: 错误:[$resource:badcfg]查询 $resource/badcfg?p0=array&p1=object&p2=GET&p3=http%3A%2F%2Flocalhost%3A63831%2Fapi%2Fnames 输入(第68行) 我不知道如何解决这个问题。该应用程序是否可能作为WebApi位于另一个本地主机端口中 下面的代码显示了单元测试:Javascript 错误:[$resource:badcfg]使用Jasmine测试资源服务时查询,javascript,angularjs,unit-testing,jasmine,angularjs-ng-resource,Javascript,Angularjs,Unit Testing,Jasmine,Angularjs Ng Resource,测试REST服务时,我收到以下错误消息: 错误:[$resource:badcfg]查询 $resource/badcfg?p0=array&p1=object&p2=GET&p3=http%3A%2F%2Flocalhost%3A63831%2Fapi%2Fnames 输入(第68行) 我不知道如何解决这个问题。该应用程序是否可能作为WebApi位于另一个本地主机端口中 下面的代码显示了单元测试: describe('Test', function () { var $http
describe('Test', function () {
var $httpBackend, $rootScope, crudService, baseUrl, respValue;
beforeEach(function () {
module('testApp');
inject(function (_$httpBackend_, _$rootScope_, _CrudService_, _baseUrl_) {
$httpBackend = _$httpBackend_;
$rootScope = _$rootScope_;
crudService = _CrudService_;
baseUrl = _baseUrl_;
});
});
it('should make a request to the backend', function () {
$httpBackend.whenGET('views/home.html').respond(200);
$httpBackend.expectGET(baseUrl + '/api/names').respond(200, [{
Id: '1', fname: 'John', lname: 'Doe', age: 30, GroupId: 1
}]);
$rootScope.$digest();
crudService.getAllNames().$promise.then(function (response) {
respValue = response;
});
$httpBackend.flush();
expect(respValue).toContain([{
Id: '1', fname: 'John', lname: 'Doe', age: 30, GroupId: 1
}]);
});
编辑: 我尝试了下面的答案,并添加了一个
expect()
-方法,显示了以下错误消息:
应为[d({Id:'1',fname:'John',lname:'Doe',年龄:30,组Id:
1}),$promise:promise({$$state:Object({状态:1,挂起:
未定义,值:,processScheduled:false
})}),$resolved:true]包含[对象({Id:'1',fname:'John',
lname:'Doe',年龄:30,组ID:1})]
很可能这条线就是问题所在
$httpBackend.expectGET(baseUrl + '/api/names').respond(200, {
Id: '1', fname: 'John', lname: 'Doe', age: 30, GroupId: 1
});
响应应该是一个数组,但它是一个对象。你能把这一行改成
$httpBackend.expectGET(baseUrl + '/api/names').respond(200, [{
Id: '1', fname: 'John', lname: 'Doe', age: 30, GroupId: 1
}]);
然后再试。我在使用$resource时遇到了一个错误的cfg,我的问题是我的rest调用的头。我必须将它设置为:headers:{“Accept”:“application/json;odata=verbose”}@user3266024,我必须在单元测试中添加它吗?我不知道,我对一般编程非常陌生,我只是想分享我对相同错误的解决方案。很抱歉,如果我只是把你弄糊涂了:(@user3266024没问题..几天以来我一直有这个错误。现在,我在我的测试列表中得到了以下消息:
规范没有期望应该向后端发出请求。
。我知道我需要一个期望()
方法。但我不知道如何测试预期的GET请求?!当你设置expectGET
时,测试将失败,没有GET生成。你可以通过注释getAllNames
调用来测试它。如果没有什么比expectGET断言更失败。我已经编辑了我的帖子。你可以看到上面的新错误消息