小编Ale*_*oks的帖子

如何在模块配置中模拟provider/config以进行单元测试

我正在尝试使用Angular设置单元测试,并注入了模块级配置和运行方法.

例如,如果我有这样的模块定义:

angular.module('foo', ['ngRoute', 'angular-loading-bar', 'ui.bootstrap']).config(function ($routeProvider, $locationProvider, datepickerConfig, datepickerPopupConfig) {
Run Code Online (Sandbox Code Playgroud)

Karma对我大喊大叫,因为我没有正确地使用以下方法嘲笑$ routeProvider,datepickerConfig等:

Error: [$injector:modulerr] Failed to instantiate module foo due to:
Error: [$injector:unpr] Unknown provider: $routeProvider
Run Code Online (Sandbox Code Playgroud)

(然后,如果我删除$ routeProvider,那么它会显示Unknown provider:datepickerConfig等)

我在beforeEach中也有以下代码:

angular.mock.module('foo');
angular.mock.module('ngRoute');
angular.mock.module('ui.bootstrap');
Run Code Online (Sandbox Code Playgroud)

以及我的karma.conf.js中的以下内容:

  'components/angular/angular.js',
  'components/angular/angular-mocks.js',
  'components/angular/angular-route.js',
  'components/angular-ui/ui-bootstrap-tpls.js',
  'app/*.js', // app code
  'app/**/*.js',
  'app/**/**/*.js',
  'test/app/*.js', // app.js
  'test/specs/*.js', // angular.mock.module calls
  'test/**/*.js', // tests
  'test/**/**/*.js'
Run Code Online (Sandbox Code Playgroud)

谢谢你的任何建议.

unit-testing angularjs karma-runner

5
推荐指数
1
解决办法
2811
查看次数

标签 统计

angularjs ×1

karma-runner ×1

unit-testing ×1