Справочная ошибка: Angular не определен в тесте Karma для гибридного приложения

Я пытаюсь написать модульный тест для углового компонента в гибридном приложении. Рассматриваемый компонент использует «let var = angular.element (.....)» в одном из своих методов, и именно этот код вызывает ошибку.

Проект строится нормально, и все работает как положено.

Однако в файле spec.ts тест по умолчанию

it('should create', () => {
    expect(component).toBeTruthy();
  });

приводит к тому, что Karma выдает ошибку «Ошибка ссылки: Angular не определен».

Я пытался найти решение, но не смог найти ничего, относящегося к этому (был один вопрос с той же ошибкой, но в этих проектах использовался AngularJS и устаревший пакет Bower). Я также попытался объявить путь к модулям узла angular в сценариях test => в файле Angular.json, но это привело к другой ошибке, когда время ожидания Karma истекло. Мне интересно, связана ли эта проблема с гибридным приложением?


person skeffin    schedule 16.09.2019    source источник


Ответы (2)


Трудно сказать, в чем проблема, не видя больше ваших настроек, но вот несколько вещей, которые я сделал, чтобы настроить тестирование angularJS в гибридном приложении.

  • npm install angular-mocks -s
  • В tsconfig.spec.json добавьте angular к «типам», как показано ниже.
"compilerOptions": {
        "outDir": "../out-tsc/spec",
        "types": [
            "jasmine",
            "angular",
            "node"
        ]
  • In test.ts: import "angular-mocks";
  • В тестах angularJS: beforeEach(angular.mock.module('your-module'));

Надеюсь, это хотя бы поможет вам в пути.

person DaggeJ    schedule 30.09.2019

Вы можете добавить файлы библиотеки AngularJs в конфигурации Karma. karma.conf.js имеет опцию файлов, где вы можете указать путь к вашей папке AngularJs lib:

файлы: [{шаблон: 'PATH_TO_ANGULARJS_LIB_FOLDER/angular/*.js', просмотрено: false}]

person vivek batra    schedule 24.06.2020