У меня есть следующие сложные настройки angularjs:Карма-жасмин Ошибка
angular.module('a',['b','c'])
.controller('c1', ['$scope', 'bservice', 'cservice', function($scope,bservice,cservice){
// c1 controller code
}]);
angular.module('b',['d','e'])
.service('bservice', ['$scope', 'dservice', 'eservice', function($scope,dservice,eservice){
// bservice code
}]);
angular.module('c',['f','g'])
.service('cservice', ['$scope', 'fservice', 'gservice', function($scope,fservice,gservice){
// cservice code
}]);
angular.module('d',[])
.service('dservice', ['$scope', function($scope){
// dservice code
}]);
angular.module('e',[])
.service('eservice', ['$scope', function($scope){
// eservice code
}]);
angular.module('f',[])
.service('fservice', ['$scope', function($scope){
// fservice code
}]);
angular.module('g',[])
.service('gservice', ['$scope', function($scope){
// gservice code
}]);
Теперь я пишу тест жасмин случай для c1 контроллера Вот мой пример кода контроллера
describe('c1 controller', function(){
var scope, controller;
var bservice, cservice;
beforeEach(module('a'));
beforeEach(inject(function(_$controller_, _$rootScope_, _bservice_, _cservice_) {
scope = _$rootScope_.$new();
controller = _$controller_('c1', {
$scope: scope,
bservice: _bservice_,
cservice: _cservice_
});
}));
it('scope should be defined', function() {
expect(scope).toBeDefined();
});
});
Но для некоторых причина, по которой тест терпит неудачу, и я не получаю сообщение об ошибке. Единственное сообщение, Firefox пусковая показывает провален со следующими файлами:
minErr/<@ui-build/node_modules/angular/angular.js:68:12
loadModules/<@ui-build/node_modules/angular/angular.js:4779:15
[email protected]/node_modules/angular/angular.js:357:11
[email protected]/node_modules/angular/angular.js:4740:5
[email protected]/node_modules/angular/angular.js:4662:19
[email protected]/node_modules/angular-mocks/angular-mocks.js:3160:44
[3]</ContextKarma/[email protected]://localhost:9876/context.js:151:7
Так что мои вопросы:
Может ли этот вид angularjs установки рекомендуется для тестирования и, если да, то, что я делаю неправильно или отсутствует, что приводит к сбою теста?
Как включить подробный журнал ошибок в карме?
PhantomJS известен своими ошибками при глотании, особенно перед каждым блоком. Переключитесь на Chrome. Нет абсолютно никаких оснований делать такие вещи, как 'bservice: _bservice_'. Он уже введен по умолчанию. – estus
Ive использовал хром и firefox-пусковые установки, но по-прежнему ту же ошибку – VishwaKumar
Попробуйте переместить 'inject' from beforeEach к нему и посмотреть, что произойдет. Я не вижу ничего плохого в коде, который вы опубликовали, - кроме неправильной аннотации, которая почти не сохраняется в исходном коде. Но это также означает, что реальный код может отличаться от того, который вы опубликовали. – estus