如何使用提供程序依赖项对模块进行单元测试?
How to unit test module with provider dependencies?
我有一个现有的 angular 应用程序。现在我想从一些单元测试开始。我使用 jasmine 和 karma 来测试我的服务。
我的问题是我无法使用 $stateProvider 依赖项来测试服务。
我在用什么:
- angularjs 1.5.8
- angular 模拟 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
做一些事情,但我不知道该怎么做。
您需要在配置文件中添加 $stateProvider
接下来您需要在主应用程序之前注入 ui.router
beforeEach(angular.mock.module('ui.router'));
beforeEach(angular.mock.module('starter.start'));
然后你需要调用服务
我有一个现有的 angular 应用程序。现在我想从一些单元测试开始。我使用 jasmine 和 karma 来测试我的服务。 我的问题是我无法使用 $stateProvider 依赖项来测试服务。 我在用什么: - angularjs 1.5.8 - angular 模拟 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
做一些事情,但我不知道该怎么做。
您需要在配置文件中添加 $stateProvider
接下来您需要在主应用程序之前注入 ui.router
beforeEach(angular.mock.module('ui.router'));
beforeEach(angular.mock.module('starter.start'));
然后你需要调用服务