2013-09-22 22 views
9

$ cookieStore modülünü kullanmak istediğim yerde hizmet veriyorum. İyi çalışıyor, ancak ünite test edildiğinde hata veriyor ve hata veriyor: "$ cookieStoreProvider < - $ cookieStore < - filtersService".Bilinmeyen sağlayıcı CookieStore

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

Ve birim test hizmeti şuna benzer::

hizmet şuna benzer

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...) 
})); 
}); 

Ben karma testi dosyasında açısal-çerezleri dahil ettik.

Kodun çalışırken neden çalıştığına dair herhangi bir fikir var, ancak sürümler başarısız oluyor?

Güncelleme: Yukarıdaki sözlerinden

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; 
+0

Karma yapılandırma dosyasını gösterebilir misiniz? – Blackhole

+0

@Blackhole Tabii ki şimdi eklendi. – Dofs

+0

cookies.js dosyasını 'files' dizisine eklemeniz gerekmiyor mu? tıpkı index.html dosyasında yaptığınız gibi: '' –

cevap

29

, bu ayrı modülünde bildirilen 'ngCookies' bağımlılığını görünüyor.

bu servis modülünde deklare denemek düzeltmek için:

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

Bu, bu sabitleme için önerilen bir yoldur.

nedense, sen serviceModule tanımını değiştirmek edemedi, ayrıca senin birim testlerinde tekrar olduğuna dair karar: i böylece kod tabanı da serviceModule bunu değiştirmek öneriyoruz Ancak

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

düzgün çalışması için ana App modülünüze bağlı değildir.

+2

Bu çözümün çalışması için angular-cookies.js'nin de dahil edilmesi gerektiğini de eklemeliyim. –

0

OP ben

durumda
.provider('myHttpInterceptor', function 
    HttpInterceptorProvider($injector, _, apiConfig) { 
       var self = this; 
... 

Eğer böyle bir durum var ve üzerine tökezledi .... bazı kod tespit edildi ve sağlayıcısı olarak oluşturulan dinleyiciye gördük .. Ancak fabrika kullanarak önleme yarattı Bu SO sorusu, işte benim sorunumu çözdüm.

ben işlevinde $ cookiestore takmayı denedim ve hatta $ Inject kullanarak denedim ama

Bilinmeyen sağlayıcı cookiestore (Bu yazı bulundu dolayısıyla nasıl) Ben sorunumu çözdü yolu bulmaktı elde tutulan $ get yöntemi ve orada cookie deposuna atın. geçmişe bakıldığında

this.$get = function($q, $cookieStore, myCache) { 
       return { 
        'request': function(config) { 
... 

, bu provider recipe documentation ile oldukça tutarlıdır.

3

Açısal tanımlama bilgileri ve açısal dosya yükleme kullanırken benzer bir sorun yaşadım.

First, I´ve checked all the dependencies on my app with bower list :

-bash-4.1$ bower list 
bower check-new  Checking for new versions of the project dependencies.. 
APPNAME#0.0.0 /home/git/APPNAME/test.git 
├── angular#1.2.28 (1.4.4-build.4150+sha.39ff333 available) 
├─┬ angular-bootstrap#0.11.2 (latest is 0.13.2) 
│ └── angular#1.2.28 (1.4.4-build.4150+sha.39ff333 available) 
├─┬ angular-cookies#1.4.3 (1.4.4-build.4150+sha.39ff333 available) 
│ └── angular#1.2.28 incompatible with 1.4.3 (1.4.3 available, latest is 1.4.4-build.4150+sha.39ff333) 
├─┬ angular-file-upload#1.2.0 
│ └── angular#1.2.28 (1.2.29-build.592+sha.b041b66 available, latest is 1.4.4-build.4150+sha.39ff333) 

As you will see, bower tells me about the incompatibility between angular 1.2.28 and 1.4.3, then, we have a library problem. The same for angular-cookies and angular-file-upload.

After that, I just decided to clean all my bower_components dir with rm -fr bower_components and run a new bower install to ensure all the libraries are "fresh-installed".

-bash-4.1$ rm -fr bower_components 
-bash-4.1$ cd .. 
-bash-4.1$ cd .. 
-bash-4.1$ bower install 
bower jquery#~1.11.0   cached git://github.com/jquery/jquery.git#1.11.3 
bower jquery#~1.11.0   validate 1.11.3 against git://github.com/jquery/jquery.git#~1.11.0 
bower es5-shim#~3.0.1   cached git://github.com/es-shims/es5-shim.git#3.0.2 
bower es5-shim#~3.0.1   validate 3.0.2 against git://github.com/es-shims/es5-shim.git#~3.0.1 
bower angular-resource#>=1.2.* cached git://github.com/angular/bower-angular-resource.git#1.4.3 
bower angular-resource#>=1.2.*   validate 1.4.3 against git://github.com/angular/bower-angular-resource.git#>=1.2.* 
bower angular-cookies#>=1.2.*   cached git://github.com/angular/bower-angular-cookies.git#1.4.3 
bower angular-cookies#>=1.2.*   validate 1.4.3 against git://github.com/angular/bower-angular-cookies.git#>=1.2.* 
bower angular-sanitize#>=1.2.*   cached git://github.com/angular/bower-angular-sanitize.git#1.4.3 
bower angular-sanitize#>=1.2.*   validate 1.4.3 against git://github.com/angular/bower-angular-sanitize.git#>=1.2.* 
bower bootstrap#~3.1.1     cached git://github.com/twbs/bootstrap.git#3.1.1 
bower bootstrap#~3.1.1     validate 3.1.1 against git://github.com/twbs/bootstrap.git#~3.1.1 
bower bootstrap-sass-official#~3.1.1  cached git://github.com/twbs/bootstrap-sass.git#3.1.1+2 
bower bootstrap-sass-official#~3.1.1 validate 3.1.1+2 against git://github.com/twbs/bootstrap-sass.git#~3.1.1 
bower lodash#~3.9.3      cached git://github.com/lodash/lodash.git#3.9.3 
bower lodash#~3.9.3     validate 3.9.3 against git://github.com/lodash/lodash.git#~3.9.3 
bower angular-socket-io#~0.6.0   cached git://github.com/btford/angular-socket-io.git#0.6.1 
bower angular-socket-io#~0.6.0   validate 0.6.1 against git://github.com/btford/angular-socket-io.git#~0.6.0 
bower angular-ui-router#~0.2.10   cached git://github.com/angular-ui/ui-router.git#0.2.15 
bower angular-ui-router#~0.2.10  validate 0.2.15 against git://github.com/angular-ui/ui-router.git#~0.2.10 
bower angular-bootstrap#~0.11.0   cached git://github.com/angular-ui/bootstrap-bower.git#0.11.2 
bower angular-bootstrap#~0.11.0  validate 0.11.2 against git://github.com/angular-ui/bootstrap-bower.git#~0.11.0 
bower textAngular#~1.4.1     cached git://github.com/fraywing/textAngular.git#1.4.3 
bower textAngular#~1.4.1    validate 1.4.3 against git://github.com/fraywing/textAngular.git#~1.4.1 
bower angular-file-upload#~1.2.0   cached git://github.com/nervgh/angular-file-upload.git#1.2.0 
bower angular-file-upload#~1.2.0  validate 1.2.0 against git://github.com/nervgh/angular-file-upload.git#~1.2.0 
bower angular-mocks#>=1.2.*    cached git://github.com/angular/bower-angular-mocks.git#1.4.3 
bower angular-mocks#>=1.2.*   validate 1.4.3 against git://github.com/angular/bower-angular-mocks.git#>=1.2.* 
bower angular-google-places-autocomplete#~0.2.7   cached git://github.com/kuhnza/angular-google-places-autocomplete.git#0.2.7 
bower angular-google-places-autocomplete#~0.2.7   validate 0.2.7 against git://github.com/kuhnza/angular-google-places-autocomplete.git#~0.2.7 
bower angular-scenario#>=1.2.*       cached git://github.com/angular/bower-angular-scenario.git#1.4.3 
bower angular-scenario#>=1.2.*       validate 1.4.3 against git://github.com/angular/bower-angular-scenario.git#>=1.2.* 
bower json3#~3.3.1          cached git://github.com/bestiejs/json3.git#3.3.2 
bower json3#~3.3.1          validate 3.3.2 against git://github.com/bestiejs/json3.git#~3.3.1 
bower font-awesome#>=4.1.0        cached git://github.com/FortAwesome/Font-Awesome.git#4.4.0 
bower font-awesome#>=4.1.0        validate 4.4.0 against git://github.com/FortAwesome/Font-Awesome.git#>=4.1.0 
bower angular-google-maps#~2.1.5       cached git://github.com/angular-ui/angular-google-maps.git#2.1.5 
bower angular-google-maps#~2.1.5      validate 2.1.5 against git://github.com/angular-ui/angular-google-maps.git#~2.1.5 
bower angular#1.4.3          cached git://github.com/angular/bower-angular.git#1.4.3 
bower angular#1.4.3          validate 1.4.3 against git://github.com/angular/bower-angular.git#1.4.3 
bower font-awesome#>=4.0.x        cached git://github.com/FortAwesome/Font-Awesome.git#4.4.0 
bower font-awesome#>=4.0.x        validate 4.4.0 against git://github.com/FortAwesome/Font-Awesome.git#>=4.0.x 
bower rangy#~1.3.0          cached git://github.com/timdown/rangy-release.git#1.3.0 
bower rangy#~1.3.0          validate 1.3.0 against git://github.com/timdown/rangy-release.git#~1.3.0 
bower angular#~1.2.11          cached git://github.com/angular/bower-angular.git#1.2.28 
bower angular#~1.2.11         validate 1.2.28 against git://github.com/angular/bower-angular.git#~1.2.11 
bower angular           resolution Unsuitable resolution declared for angular: 1.4.1 

Unable to find a suitable version for angular, please choose one: 
    1) angular#~1.2.11 which resolved to 1.2.28 and is required by angular-file-upload#1.2.0 
    2) angular#>=1 which resolved to 1.2.28 and is required by angular-bootstrap#0.11.2 
    3) angular#>= 1.0.8 which resolved to 1.2.28 and is required by angular-ui-router#0.2.15 
    4) angular#^1.2.6 which resolved to 1.2.28 and is required by angular-socket-io#0.6.1 
    5) angular#^1.2.x which resolved to 1.2.28 and is required by angular-google-places-autocomplete#0.2.7 
    6) angular#1.2 - 1.4 which resolved to 1.2.28 and is required by angular-google-maps#2.1.5 
    7) angular#1.4.3 which resolved to 1.4.3 and is required by angular-cookies#1.4.3, angular-mocks#1.4.3, angular-resource#1.4.3, angular-sanitize#1.4.3, angular-scenario#1.4.3 
    8) angular#>=1.3.x which resolved to 1.4.3 and is required by textAngular#1.4.3 

Prefix the choice with ! to persist it to bower.json 

? Answer: 7! 

bower asked me to choose between the versions for angular and I´ve chosen the 7th option, as it´s angular 1.4.3, the latest of the versions required in most of the components of my app. After that, bower did the installation, and linked angular 1.4.3 to all the bower_components that require it:

bower angular           resolution Saved angular#1.4.3 as resolution 
bower es5-shim#~3.0.1         install es5-shim#3.0.2 
bower angular-sanitize#>=1.2.*       install angular-sanitize#1.4.3 
bower bootstrap-sass-official#~3.1.1      install bootstrap-sass-official#3.1.1+2 
bower jquery#~1.11.0          install jquery#1.11.3 
bower angular-resource#>=1.2.*       install angular-resource#1.4.3 
bower angular-cookies#>=1.2.*       install angular-cookies#1.4.3 
bower angular-bootstrap#~0.11.0       install angular-bootstrap#0.11.2 
bower angular-ui-router#~0.2.10       install angular-ui-router#0.2.15 
bower lodash#~3.9.3          install lodash#3.9.3 
bower angular-socket-io#~0.6.0       install angular-socket-io#0.6.1 
bower bootstrap#~3.1.1         install bootstrap#3.1.1 
bower angular-google-places-autocomplete#~0.2.7   install angular-google-places-autocomplete#0.2.7 
bower textAngular#~1.4.1         install textAngular#1.4.3 
bower angular-file-upload#~1.2.0       install angular-file-upload#1.2.0 
bower json3#~3.3.1          install json3#3.3.2 
bower angular-mocks#>=1.2.*        install angular-mocks#1.4.3 
bower rangy#~1.3.0          install rangy#1.3.0 
bower angular-google-maps#~2.1.5       install angular-google-maps#2.1.5 
bower font-awesome#>=4.0.x        install font-awesome#4.4.0 
bower angular#1.4.3          install angular#1.4.3 
bower angular-scenario#>=1.2.*       install angular-scenario#1.4.3 

es5-shim#3.0.2 client/bower_components/es5-shim 

angular-sanitize#1.4.3 client/bower_components/angular-sanitize 
└── angular#1.4.3 

bootstrap-sass-official#3.1.1+2 client/bower_components/bootstrap-sass-official 

jquery#1.11.3 client/bower_components/jquery 

angular-resource#1.4.3 client/bower_components/angular-resource 
└── angular#1.4.3 

angular-cookies#1.4.3 client/bower_components/angular-cookies 
└── angular#1.4.3 

angular-bootstrap#0.11.2 client/bower_components/angular-bootstrap 
└── angular#1.4.3 

angular-ui-router#0.2.15 client/bower_components/angular-ui-router 
└── angular#1.4.3 

lodash#3.9.3 client/bower_components/lodash 

angular-socket-io#0.6.1 client/bower_components/angular-socket-io 
└── angular#1.4.3 

bootstrap#3.1.1 client/bower_components/bootstrap 
└── jquery#1.11.3 

angular-google-places-autocomplete#0.2.7 client/bower_components/angular-google-places-autocomplete 
└── angular#1.4.3 

textAngular#1.4.3 client/bower_components/textAngular 
├── angular#1.4.3 
├── font-awesome#4.4.0 
└── rangy#1.3.0 

angular-file-upload#1.2.0 client/bower_components/angular-file-upload 
└── angular#1.4.3 

json3#3.3.2 client/bower_components/json3 

angular-mocks#1.4.3 client/bower_components/angular-mocks 
└── angular#1.4.3 

rangy#1.3.0 client/bower_components/rangy 

angular-google-maps#2.1.5 client/bower_components/angular-google-maps 
├── angular#1.4.3 
└── lodash#3.9.3 

font-awesome#4.4.0 client/bower_components/font-awesome 

angular#1.4.3 client/bower_components/angular 

angular-scenario#1.4.3 client/bower_components/angular-scenario 
└── angular#1.4.3 

And now, I run a bower list again, to check how the dependencies were now:

-bash-4.1$ bower list 
bower check-new  Checking for new versions of the project dependencies.. 
appName#0.0.0 /home/git/appName/test.git 
├─┬ angular-bootstrap#0.11.2 (latest is 0.13.2) 
│ └── angular#1.4.3 (1.4.4-build.4150+sha.39ff333 available) 
├─┬ angular-cookies#1.4.3 (1.4.4-build.4150+sha.39ff333 available) 
│ └── angular#1.4.3 (latest is 1.4.4-build.4150+sha.39ff333) 
├─┬ angular-file-upload#1.2.0 
│ └── angular#1.4.3 incompatible with ~1.2.11 (1.2.29-build.592+sha.b041b66 available, latest is 1.4.4-build.4150+sha.39ff333) 
├─┬ angular-google-maps#2.1.5 
│ ├── angular#1.4.3 (1.4.4-build.4150+sha.39ff333 available) 
│ └── lodash#3.9.3 (3.10.1 available) 
├─┬ angular-google-places-autocomplete#0.2.7 
│ └── angular#1.4.3 (1.4.4-build.4150+sha.39ff333 available) 
├─┬ angular-mocks#1.4.3 (1.4.4-build.4150+sha.39ff333 available) 
│ └── angular#1.4.3 
├─┬ angular-resource#1.4.3 (1.4.4-build.4150+sha.39ff333 available) 
│ └── angular#1.4.3 
├─┬ angular-sanitize#1.4.3 (1.4.4-build.4150+sha.39ff333 available) 
│ └── angular#1.4.3 
├─┬ angular-scenario#1.4.3 (1.4.4-build.4150+sha.39ff333 available) 
│ └── angular#1.4.3 
├─┬ angular-socket-io#0.6.1 (latest is 0.7.0) 
│ └── angular#1.4.3 (1.4.4-build.4150+sha.39ff333 available) 
├─┬ angular-ui-router#0.2.15 
│ └── angular#1.4.3 (1.4.4-build.4150+sha.39ff333 available) 
├─┬ bootstrap#3.1.1 (latest is 3.3.5) 
│ └── jquery#1.11.3 (3.0.0-alpha1+compat available) 
├── bootstrap-sass-official#3.1.1+2 (latest is 3.3.5) 
├── es5-shim#3.0.2 (latest is 4.1.10) 
├── font-awesome#4.4.0 
├── jquery#1.11.3 (latest is 3.0.0-alpha1+compat) 
├── json3#3.3.2 
├── lodash#3.9.3 (latest is 3.10.1) 
└─┬ textAngular#1.4.3 
    ├── angular#1.4.3 (1.4.4-build.4150+sha.39ff333 available) 
    ├── font-awesome#4.4.0 
    └── rangy#1.3.0 

As you will see, I still see an incompatible dependency in angular-file-upload component. Then, I run into the component dir, and installed LOCALLY FOR THIS COMPONENT a new version of angular (the required one for the component itself):

-bash-4.1$ cd client/ 
-bash-4.1$ cd bower_components/ 
-bash-4.1$ cd angular-file-upload/ 
-bash-4.1$ bower install angular --save 
bower angular#*     cached git://github.com/angular/bower-angular.git#1.4.3 
bower angular#*    validate 1.4.3 against git://github.com/angular/bower-angular.git#* 

Unable to find a suitable version for angular, please choose one: 
    1) angular#~1.2.11 which resolved to 1.2.28 and is required by angular-file-upload 
    2) angular#~1.4.3 which resolved to 1.4.3 

Prefix the choice with ! to persist it to bower.json 

? Answer: 1! 
bower angular    resolution Saved angular#~1.2.11 as resolution 
: Ben öyle çözüldü

After that, everything went ok and there was not more injection or dependency problems. Hope it may help you.

0

Anahtar nokta angular.js sürümü ve açısal çerez sürümünün aynı olması gerekir. enter image description here

Onları eşleştirdikten sonra benim için çalıştı.

İlgili konular