Не удается загрузить модуль во время AngularJS модульного тестирования - PullRequest
0 голосов
/ 21 января 2020

Я пишу модульные тесты для моих сервисов и контроллеров приложения angularJS 1.4.x, проблема в том, что все наши контроллеры и сервисы объявлены внутренними модулями, как показано ниже, то есть "MyApp"

module MyApp {

    'user strict';

     export class MyService {
          public static $inject = [
            '$http',
            '$rootScope',
            'library'
          ];
          constructor(private $rootScope:any,
                    private $http:ng.IHttpService,
                    private library:lib.Library) {}

          // some methods...
     }
}

но когда я пытаюсь запросить этот файл в моем тесте. js файл выдает следующую ошибку

SyntaxError: Unexpected token, expected ";" (1:7)

вот мой тестовый файл

require('../../../node_modules/angular/angular.min.js');
require('../../../node_modules/angular-mocks/angular-mocks.js');    
require('../ts/MyService.ts');

describe('myService testing', function(){

    beforeEach(
        angular.mock.module('app')
    );

    var ser;

    beforeEach(inject(function(myService) {
        ser = myService;
    }));

    it('1 + 1 should equal 2', function(){
        var actual = ser.addTwoNumbers(1,1);
        expect(actual).toEqual(2);
    });       
});

1 Ответ

1 голос
/ 21 января 2020

Это выглядит так, как будто приложение написано на TypeScript, но тест написан на JavaScript.

Когда вы запускаете тест (как JavaScript) и требует частей, написанных на TypeScript, они не могут быть проанализированы интерпретатором JavaScript.

Скомпилируйте ваш TypeScript в JavaScript и включите в тест полученные файлы (. js), а не исходные файлы TypeScript (* 1006) * .ts)

...