Служба не определена, ошибка тестирования модуля angularJs

0

Я показал эту ошибку, я попробовал много решений в сети, как этот пример в http://www.benlesh.com/2013/06/angular-js-unit-testing-services.html, но, похоже, ничего не работает.

***** app.js

 var app = angular.module('myApp', ['ui.router','ui.bootstrap','dialogs','ngResource']);

        app.config(['$stateProvider', '$urlRouterProvider','$resourceProvider', function($stateProvider, $urlRouterProvider,$resourceProvider) {

            $urlRouterProvider.otherwise('/');

            $stateProvider
                .state('home', {
                    url:'/',
                    views: {
  ......}})
  }]);

***** test.js

     describe('basicService tests', function (){

       beforeEach(module('myApp'));
       var basic;

       // excuted before each "it" is run.
       beforeEach(inject(function(basicService) {
            basic = basicService;
       }));


      it('should make text exciting', function (){
        //var result = basic.exciteText('bar');
         expect(basic.exciteText('bar')).toBe('bar!');
      });
});

***** service.js

angular.module('myApp').factory('basicService', function(){
return {
    exciteText: function(msg) {
        return msg + '!!!'
    }
};
});

*****ошибка

minErr/<@C:/_Stage/myprojet/src/main/webapp/js/angular.js:63:12
loadModules/<@C:/_Stage/myprojet/src/main/webapp/js/angular.js:4138:15
forEach@C:/_Stage/myprojet/src/main/webapp/js/angular.js:323:11
loadModules@C:/_Stage/myprojet/src/main/webapp/js/angular.js:4099:5
createInjector@C:/_Stage/myprojet/src/main/webapp/js/angular.js:4025:11
workFn@C:/_Stage/myprojet/src/main/webapp/js/angular-mocks.js:2425:44
createStartFn/<@C:/_Stage/myprojet/src/main/webapp/js/adapter.js:317:5
TypeError: basic is undefined in C:/_Stage/myprojet/src/main/webapp/cportal/component/administration/caFingerPrint/caFingerprintService_test.js (line 20)
@C:/_Stage/myprojet/src/main/webapp/cportal/component/administration/caFingerPrint/caFingerprintService_test.js:20:9
createStartFn/<@C:/_Stage/myprojet/src/main/webapp/js/adapter.js:317:5

PS: В karma.config.js я добавил эти файлы. Кроме того, я попробовал var app = angular.module('myApp', []); потому что я не включил их в "karma.config.js", и я их так называю,

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.js"></script>

так что я его ошибка, но ничего. Спасибо за любую помощь.

Теги:
webstorm
unit-testing
karma-jasmine

1 ответ

0

Кажется, что необходимые файлы неправильно настроены в файле karma.config.js. Я могу успешно выполнить ваш тест, используя следующие karma.config.js:

module.exports = function (config) {


    var configuration = {
        autoWatch: false,

        frameworks: ['jasmine'],


        files: [

            'lib/angular.js',
            'lib/angular-resource.js',
            'lib/angular-ui-router.js',
            'lib/angular-mocks.js',
            'app.js',
            'service.js',
            'test/**/*js'

        ],
...

Конечно, вам нужно убедиться, что все файлы ссылок есть и указанные пути (относительно karma.config) верны (в моих файлах спецификации проекта находятся в папке "test", библиотеки - в "lib", файлы приложений расположены в том же каталоге, что и файл конфигурации кармы)

  • 0
    спасибо, я сделал это, но ничего не меняется.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню