如何使用提供程序依赖性单元测试模块?

时间:2016-10-16 08:59:33

标签: angularjs jasmine karma-jasmine angular-mock

我有一个现有的角度应用程序。现在我想从一些单元测试开始。我用茉莉和业力来测试我的服务。 我的问题是我无法使用$ stateProvider依赖项测试服务。 我在用什么: - angularjs 1.5.8 - 角度嘲笑1.5.8

我的代码:

angular.module('starter.start', []).config(function ($stateProvider) {
          // ...
}).factory('MyService', function() {
          // ...
});

测试:

describe('MyServiceSpec', function() {
    var MyService;
    beforeEach(angular.mock.module('starter.start'));
    beforeEach(inject(function(_MyService_) {
        MyService= _MyService_;
    }));

    it('should exist', function() {
        expect(MyService).toBeDefined();
    });
});

我收到错误Unknown provider: $stateProvider。 在我的研究中,我发现我需要对$provide做一些事情,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:2)

您需要在配置文件中添加$ stateProvider

接下来你需要在主应用程序之前注入ui.router

beforeEach(angular.mock.module('ui.router'));
beforeEach(angular.mock.module('starter.start'));

然后你需要致电服务