createAngularJSTestingModule
Вспомогательная функция для модульного тестирования сервисов AngularJS, которые зависят от пониженных сервисов Angular.
API
function createAngularJSTestingModule(angularModules: any[]): string;
any[]набор модулей Angular, которые нужно включить в конфигурацию.
string
Описание
Вспомогательная функция для модульного тестирования сервисов 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