如何在控制器外部对angularjs喷油器进行单元测试?

时间:2018-01-23 15:23:03

标签: angularjs unit-testing gulp-karma

作为AngualrJS应用程序的一部分,我必须在引导应用程序之前从REST API中检索用户详细信息。

var initInjector = angular.injector(['ng']);
var $http = initInjector.get('$http');

$http.get('../api/user').then(
  function (response) {
    if (response.user.valid) {
      angular.bootstrap(document, ['app']);
    }
  },
  function () {
    window.location.href = '../userError.html';
  }
});

我正在使用gulp构建应用程序,并且一直在尝试对此进行单元测试,如下所示

describe('unit test app config', function () {
  beforeEach(function () {
    module('app');
    inject();
  });

  it('should log a message on calling the injector', function () {
    spyOn(angular, 'injector').and.callThrough();
    expect(angular.injector).toHaveBeenCalled();
  });
});

但是这会产生以下错误:已经调用了预期的间谍注射器。

我如何对此代码进行单元测试?我只需要模拟$ http服务并测试成功和失败函数

0 个答案:

没有答案