Spec-Zone.ru › Angular

createAngularJSTestingModule

Вспомогательная функция для модульного тестирования сервисов AngularJS, которые зависят от пониженных сервисов Angular.

API

function createAngularJSTestingModule(angularModules: any[]): string;
@paramangularModulesany[]

набор модулей Angular, которые нужно включить в конфигурацию.

@returnsstring

Описание

Вспомогательная функция для модульного тестирования сервисов AngularJS, которые зависят от пониженных сервисов Angular.

Эта функция возвращает модуль AngularJS, настроенный для связывания инжекторов AngularJS и Angular без необходимости фактически запускать гибридное приложение. Это упрощает и ускоряет модульное тестирование сервисов.

Используйте возвращённый модуль AngularJS в вызове angular.mocks.module, чтобы включить этот модуль в инжектор модульного теста.

В следующем фрагменте кода мы настраиваем $injector с двумя модулями: ng1AppModule AngularJS, которая является частью AngularJS нашего гибридного приложения, и Ng2AppModule, которая является частью Angular.

beforeEach(module(createAngularJSTestingModule([Ng2AppModule])));
  beforeEach(module(ng1AppModule.name));

После этого мы можем получать сервисы через $injector AngularJS обычным способом. Сервисы, которые являются пониженными сервисами Angular или зависят от них, будут создаваться по мере необходимости корневым инжектором Angular Injector.

В следующем фрагменте кода heroesService — это пониженный сервис Angular, к которому мы обращаемся из AngularJS.

it('should have access to the HeroesService', inject((heroesService: HeroesService) => {
    expect(heroesService).toBeDefined();
  }));

Этот вспомогательный инструмент предназначен для тестирования сервисов, а не компонентов. Для тестирования компонентов по-прежнему необходимо запускать гибридное приложение. Дополнительную информацию см. в UpgradeModule или downgradeModule.

Полученная конфигурация не связывает дайджесты AngularJS с хуками Zone. Автор теста должен при необходимости вызывать $rootScope.$apply, чтобы запускать обработчики AngularJS для асинхронных событий из Angular.

Вспомогательная функция настраивает глобальные переменные для хранения общих инжекторов Angular и AngularJS.

  • Вызывайте эту вспомогательную функцию только один раз для каждого теста.
  • Не используйте createAngularJSTestingModule в одном тесте с createAngularTestingModule.

Ниже представлены пример приложения и его модульные тесты, в которых используются createAngularTestingModule и createAngularJSTestingModule.

Super-powered by Google ©2010–2025.
Code licensed under an MIT-style License. Documentation licensed under CC BY 4.0.
https://angular.dev/api/upgrade/static/testing/createAngularJSTestingModule

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API