Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误:[$resource:badcfg]使用Jasmine测试资源服务时查询_Javascript_Angularjs_Unit Testing_Jasmine_Angularjs Ng Resource - Fatal编程技术网

Javascript 错误:[$resource:badcfg]使用Jasmine测试资源服务时查询

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

测试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 $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断言更失败。我已经编辑了我的帖子。你可以看到上面的新错误消息