Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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 茉莉花业力单元测试“;错误:意外请求:GET/Content/json/3420“u layer0.json”;_Javascript_Json_Angularjs_Karma Jasmine_Httpbackend - Fatal编程技术网

Javascript 茉莉花业力单元测试“;错误:意外请求:GET/Content/json/3420“u layer0.json”;

Javascript 茉莉花业力单元测试“;错误:意外请求:GET/Content/json/3420“u layer0.json”;,javascript,json,angularjs,karma-jasmine,httpbackend,Javascript,Json,Angularjs,Karma Jasmine,Httpbackend,编写一个简单的测试用例 describe('Services', function () { describe('API', function () { var $httpBackend, $rootScope, createController, requestHandler; var jsonLayer0 = "/Content/json/3420_layer0.json"; // Set up the module

编写一个简单的测试用例

describe('Services', function () {

    describe('API', function () {

        var $httpBackend, $rootScope, createController, requestHandler;
        var jsonLayer0 = "/Content/json/3420_layer0.json";

        // Set up the module
        beforeEach(module('anbud'));

        beforeEach(inject(function ($injector) {
            // Set up the mock http service responses
            $httpBackend = $injector.get('$httpBackend');

            $httpBackend.whenGET(jsonLayer0).respond(200, '');

            $rootScope = $injector.get('$rootScope');

            // The $controller service is used to create instances of controllers
            var $controller = $injector.get('$controller');

            createController = function () {
                return $controller('anbudTreeController', { '$scope': $rootScope });
            };
        }));

        afterEach(function () {
            $httpBackend.verifyNoOutstandingExpectation();
            $httpBackend.verifyNoOutstandingRequest();
        });

        it('should fetch first layer', function () {
            $httpBackend.expectGET(jsonLayer0);
            var controller = createController();
            $rootScope.getFirstLayer();
            $httpBackend.flush();
        });
我得到:

Error: Unexpected request: GET /Content/json/3420_layer0.json
但是,我有:

var jsonLayer0 = "/Content/json/3420_layer0.json";
$httpBackend.whenGET(jsonLayer0).respond(200, '');
所以,不确定问题是什么

完整堆栈跟踪:

Error: Unexpected request: GET test
        No more request expected
            at $httpBackend (C:/git/angularjs/NSview/NSviewer/Scripts/angular-mocks.js:1244:9)
            at $httpBackend (C:/git/angularjs/NSview/NSviewer/Scripts/angular-mocks.js:1237:11)
            at sendReq (C:/git/angularjs/NSview/NSviewer/Scripts/angular.js:10515:9)
            at serverRequest (C:/git/angularjs/NSview/NSviewer/Scripts/angular.js:10222:16)
            at processQueue (C:/git/angularjs/NSview/NSviewer/Scripts/angular.js:14745:28)
            at C:/git/angularjs/NSview/NSviewer/Scripts/angular.js:14761:27
            at Scope.$eval (C:/git/angularjs/NSview/NSviewer/Scripts/angular.js:15989:28)
            at Scope.$digest (C:/git/angularjs/NSview/NSviewer/Scripts/angular.js:15800:31)
            at Function.$httpBackend.flush (C:/git/angularjs/NSview/NSviewer/Scripts/angular-mocks.js:1543:38)
            at Object.<anonymous> (C:/git/angularjs/NSview/NSviewer/app/tests/testServiceAPI.js:54:26)
        Error: [$rootScope:inprog] $digest already in progress
        http://errors.angularjs.org/1.4.7/$rootScope/inprog?p0=%24digest
            at C:/git/angularjs/NSview/NSviewer/Scripts/angular.js:68:12
            at beginPhase (C:/git/angularjs/NSview/NSviewer/Scripts/angular.js:16346:15)
            at Scope.$digest (C:/git/angularjs/NSview/NSviewer/Scripts/angular.js:15780:9)
            at Function.$httpBackend.verifyNoOutstandingExpectation (C:/git/angularjs/NSview/NSviewer/Scripts/angular-mocks.js:1575:38)
增加:
完整堆栈跟踪

需要告诉
$httpBackend
预期GET请求

请尝试以下代码

it('should fetch first layer', function () {
    $httpBackend.expectGET(jsonLayer0);
    var controller = createController();
    $rootScope.getFirstLayer();
    $httpBackend.flush();
});

谢谢,这是有道理的,但添加了它,我仍然得到相同的错误!:/@ganjan删除$httpBackend.expectGET(jsonLayer0);从beforeach函数开始,只将其添加到测试用例中。您可以发布错误的完整堆栈跟踪。
it('should fetch first layer', function () {
    $httpBackend.expectGET(jsonLayer0);
    var controller = createController();
    $rootScope.getFirstLayer();
    $httpBackend.flush();
});