0

我正在尝试将我的 angularjs 应用程序从 v1.6.9 迁移到 v1.7.8。我的测试用例失败了

angular-mock.js($rootScope)

错误:未定义响应!在 angularjs/angular-mocks.js(1607)

错误:$rootScope:INPROG

因为我是茉莉业力测试的新手,所以我尝试过使用 $rootscope.flush()。但我无法解决它。

这是我第一次使用 Angularjs 和 jasmine karma 进行单元测试,无法找到确切的原因,我也浏览了其他版本的发行说明。

使用 $rootScope 我发现他们已将其范围修改为非通用函数。

下面是我的 spec.js:$rootscope,flush() 出现错误。可以请一些人帮我解决这个问题,因为它是必需的。

       $httpBackend.when('GET','/application/api/prefernce-definition')
          .respond(successResponsePrefernces);
        $httpBackend.when('POST','/application/api/setprefernce-definition')
          .respond(201);
        $httpBackend.when('POST','/application/api/v1/set-prefernces');
        $httpBackend.when('POST','/application/api/v2/balances')
          .respond(accountApiResponse);

        //assertion for expecting proper get request for preferences-definition
        $httpBackend.expectGET(,'/application/api/v1/prefernce-prefernces');

        //fetch and set prefernces
        $scope.onclickSetting();
        $rootScope.flush();
        $timeout.flush();

        //now save the settings
        $scope.saveViewSettings();
// getting error in this line after the flush
        $rootScope.flush();
        $timeout.flush();

        var viewMode = $scope.model.viewSettings.viewMode,
           viewModeExpected = successResponsePreferences.preferenceDefinitionList[0];

        expect(viewMode.default).toBe(viewModeExpected.defaultPreferenceValue);
        expect(viewMode.selected).toBe(viewModeExpected.currentUserPreferenceValue);
        expect($scope.$broadcast).toHaveBeenCalledWith("ShowFilter");

        //should update the prefernces in cache
        expect(viewMode.selected).toBe(cacheService.getPreferences().viewMode);
        expect(analyticsService.sendAction).toHaveBeenCalledwith(
          Constant.ACCOUNT_BALANCES.MODULE_NAME,
          Constant.ACCOUNT_BALANCES,VIEW_SETTINGS,
          []
          );
        expect(analyticsService.sendAction).toHaveBeenCalledwith(
          Constant.ACCOUNT_BALANCES.MODULE_NAME,
          Constant.ACCOUNT_BALANCES,VIEW_SETTINGS,
          [Constant.EXTD_MODE, Constant.NO_GROUPING]
          );
        });

以下是错误:

错误:未定义响应!在 ../bower_components/angular-mocks/angular-mocks.js(第 1607 行)$httpBackend@/../bower_components/angular-mocks/angular-mocks.js:1607:63。

4

0 回答 0