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

前端之家收集整理的这篇文章主要介绍了angularjs – 如何在模块配置中模拟provider / config以进行单元测试前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用Angular设置单元测试,并注入了模块级配置和运行方法.

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

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

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

Error: [$injector:modulerr] Failed to instantiate module foo due to:
Error: [$injector:unpr] Unknown provider: $routeProvider

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

我在beforeEach中也有以下代码

angular.mock.module('foo');
angular.mock.module('ngRoute');
angular.mock.module('ui.bootstrap');

以及我的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'

谢谢你的任何建议.

解决方法

确保将angular-route模块和所有依赖项包含到karma.conf.js的苍蝇数组中.这应该够了吧.

猜你在找的Angularjs相关文章