未知的提供者CookieStore

自由度

我在要使用$ cookieStore模块的地方提供服务。它可以正常工作,但是在单元测试时会中断,并显示错误:“ $ cookieStoreProvider <-$ cookieStore <-filtersService”。

该服务如下所示:

serviceModule.factory('filtersService', ['$rootScope', '$location', '$cookieStore', function($rootScope, $location, $cookieStore){
    return {
        getFilters: function(){...}
}

单元测试服务如下所示:

describe('filtersService tests', function(){
var filtersService;
beforeEach(module('App.services'));

beforeEach(inject(function(filtersService, urlService, $location){

    filtersService = filtersService;
    urlService = urlService;
}));

it('test something', inject(function(filtersService, $location){
    filtersService.getFilters();
   expect(...something...)
}));
});

我已在业力测试文件中包含了angular-cookie。

知道为什么代码在运行时可以运行,但是单元测试失败了吗?

更新:

Karma Config File:
// Karma configuration
// Generated on Sun May 12 2013 16:57:21 GMT+0200 (CEST)


// base path, that will be used to resolve files and exclude
basePath = '../';


// list of files / patterns to load in the browser
files = [
  JASMINE,
  JASMINE_ADAPTER,
  'test/karma/jquery-1.9.1.min.js',
  'app/assets/javascripts/sugar-1.3.9.min.js',
  'app/assets/javascripts/angular.js',
  'app/assets/javascripts/angular-*.js',
  'app/assets/javascripts/ui-bootstrap-tpls-0.4.0.min.js',
  'app/assets/javascripts/services.js',
  'test/karma/lib/angular/angular-mocks.js',
  'test/karma/unit/*/*.js'
];


// list of files to exclude
exclude = [

];


// test results reporter to use
// possible values: 'dots', 'progress', 'junit'
reporters = ['progress'];


// web server port
port = 9876;


// cli runner port
runnerPort = 9100;


// enable / disable colors in the output (reporters and logs)
colors = true;


// level of logging
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
logLevel = LOG_INFO;


// enable / disable watching file and executing tests whenever any file changes
autoWatch = true;


// Start these browsers, currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera
// - Safari (only Mac)
// - PhantomJS
// - IE (only Windows)
browsers = ['Chrome'];


// If browser does not capture in given timeout [ms], kill it
captureTimeout = 60000;


// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun = false;
克拉克·潘

从上面的评论看来,对'ngCookies'的依赖关系是在单独的模块中声明的。

要解决此问题,请尝试在服务模块中声明它:

var serviceModule = angular.app('App.services', ['ngCookies']);

这是解决此问题的推荐方法。

如果由于某种原因您无法更改serviceModule定义,则还可以在单​​元测试中再次声明它:

beforeEach(module('ngCookies','App.services'));

但是我建议您在代码库中对其进行更改,以便serviceModule不依赖于主App模块使其正常运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

未知的提供者CookieStore

来自分类Dev

未知提供者:$ controller

来自分类Dev

未知的提供者:$ ionicAppProvider

来自分类Dev

未知提供者:$ state

来自分类Dev

未知提供者:ngModelProvider

来自分类Dev

uiSelect未知提供者

来自分类Dev

未知提供者:$ cordovaSQLiteProvider

来自分类Dev

未知提供者:acordionDirectiveProvider

来自分类Dev

Heroku未知提供者

来自分类Dev

未知提供者:ngModelProvider

来自分类Dev

指令提供者未知

来自分类Dev

未知提供者:$ routeParamsProvider

来自分类Dev

AngularJS未知提供者

来自分类Dev

未知的提供者AngularJS

来自分类Dev

未知提供者:$ controller

来自分类Dev

未知提供者:$ state

来自分类Dev

$ cordovaInstagram返回未知的未知提供者

来自分类Dev

未知提供者:$ modalInstanceProvider <-$ modalInstance

来自分类Dev

AngularJS中的未知提供者$ sce

来自分类Dev

未知提供者:ngTagsInputProvider <-ngTagsInput

来自分类Dev

错误:未知提供者:employeesProvider <-雇员

来自分类Dev

业障测试中的未知提供者

来自分类Dev

未知提供者:$ uploadProvider <-$ upload

来自分类Dev

未知提供者:$ resourceProvider-AngularJS

来自分类Dev

Angular / Karma:未知提供者

来自分类Dev

查找“未知提供者”错误的原因

来自分类Dev

AngularJS [$ injector:unpr]未知的提供者

来自分类Dev

未知提供者:tProvider <-t

来自分类Dev

未知提供者:$ firebaseProvider <-$ firebase