Bu Jasmine'i kullanarak ilk kez bağımlılık olarak lodash ve ben sorunsuz benim ilk Fabrikası test etmiş. (here bakınız)Kullanım Yasemin uibModal bir hizmeti test etmek ve
angular.module('Questions', [])
.service('QuestionsService', function($uibModal, $log, _) {
...
}
$ uibModal UI Bootstrap gelen ve _ Lodash geçerli:
Fakat şimdi, bu hizmeti test etmek istiyorum.
describe('Service: QuestionsService', function() {
var QuestionsService;
beforeEach(inject(function(_QuestionsService_) {
QuestionsService = _QuestionsService_;
}));
...
}
Ve çalıştığınızda o (hırıltı testi), aşağıdaki hatayı alıyorum:
Benim Yasemin testi şu ana kadar olan
Error: [$injector:unpr] Unknown provider: $uibModalProvider <- $uibModal <- QuestionsService
Ve bir noktada ben de vardı:
o yardımcı olabilirError: [$injector:unpr] Unknown provider: _Provider <- _ <- QuestionsService
, benim Karma conf geçerli:
module.exports = function(config) {
'use strict';
config.set({
autoWatch: true,
basePath: '../',
frameworks: [
"jasmine"
],
// list of files/patterns to load in the browser
files: [
// bower:js
'bower_components/jquery/dist/jquery.js',
'bower_components/lodash/lodash.js',
'bower_components/angular/angular.js',
'bower_components/bootstrap-sass-official/assets/javascripts/bootstrap.js',
'bower_components/angular-animate/angular-animate.js',
'bower_components/angular-cookies/angular-cookies.js',
'bower_components/angular-resource/angular-resource.js',
'bower_components/angular-route/angular-route.js',
'bower_components/angular-sanitize/angular-sanitize.js',
'bower_components/angular-touch/angular-touch.js',
'bower_components/angular-bootstrap/ui-bootstrap-tpls.js',
'bower_components/angular-mocks/angular-mocks.js',
// endbower
"app/scripts/**/*.js",
"test/mock/**/*.js",
"test/spec/**/*.js",
],
exclude: [
],
port: 8080,
browsers: [
"PhantomJS"
],
plugins: [
"karma-phantomjs-launcher",
"karma-jasmine"
],
singleRun: false,
colors: true,
logLevel: config.LOG_INFO,
});
};
açıkça Bower bağımlılıkları sonra bir uygulama başlatma ('app.js') tanımlamak, ancak dosyaların geri kalanından önce. Yani "app/scripts/**/*. Js" ifadesinden hemen önce. Uygulamanın önyükleme dosyasından önce karma'nın eklediği yeni dosyalar yazabilirsiniz. – Healforgreen
Yardımlarınız için teşekkür ederiz. "App/scripts/**/*. Js" önce "app/scripts/app.js" yi eklemeyi denedim, ancak sorun devam etti. – didjoman
Ve 'app.js'niz Lodash ve UI-Bootstrap'i içeriyor mu? angular.module ('app', ['underscore', 'ui.bootstrap']); ' – Healforgreen