Spec-Zone.ru › Angular.js 1.5

Улучшить эту документацию ngMock

Установка

Сначала загрузите файл:

  • Google CDN например "//ajax.googleapis.com/ajax/libs/angularjs/X.Y.Z/angular-mocks.js"
  • NPM например npm install angular-mocks@X.Y.Z
  • Yarn например yarn add angular-mocks@X.Y.Z
  • Bower например bower install angular-mocks#X.Y.Z
  • code.angularjs.org (не рекомендуется для использования в производстве) например "//code.angularjs.org/X.Y.Z/angular-mocks.js"

где X.Y.Z — это версия AngularJS, которую вы используете.

Затем настройте свой тестовый запуск для загрузки angular-mocks.js после angular.js. В этом примере используется Karma:

config.set({
  files: [
    'build/angular.js', // and other module files you need
    'build/angular-mocks.js',
    '<path/to/application/files>',
    '<path/to/spec/files>'
  ]
});

Включение файла angular-mocks.js автоматически добавляет модуль ngMock, поэтому ваши тесты готовы к работе!

ngMock

Модуль ngMock предоставляет поддержку для инъекции и имитации Angular-сервисов в модульных тестах. Кроме того, ngMock также расширяет различные основные сервисы ng таким образом, чтобы их можно было проверять и контролировать синхронным способом в коде тестов.

Компоненты модуля

Объект

ИмяОписание
angular.mock

Пространство имён из 'angular-mocks.js', которое содержит код, относящийся к тестированию.

Провайдер

ИмяОписание
$exceptionHandlerProvider

Настраивает имитацию реализации $exceptionHandler для повторного выбрасывания или протоколирования ошибок, переданных в $exceptionHandler.

Сервис

ИмяОписание
$exceptionHandler

Имитация реализации $exceptionHandler, которая повторно выбрасывает или записывает ошибки, переданные ей. См. $exceptionHandlerProvider для получения информации о конфигурации.

$log

Имитация реализации $log, которая собирает все сообщения протоколирования в массивах (один массив на уровень протоколирования). Эти массивы доступны как свойство logs каждого из функций протоколирования, специфичных для уровня, например, для уровня error массив доступен как $log.error.logs.

$interval

Имитация сервиса $interval.

$animate

Имитация сервиса $animate. Предоставляет две дополнительные методы для тестирования анимаций.

$httpBackend

Имитация реализации HTTP-бекенда, подходящая для модульного тестирования приложений, использующих $http service.

$timeout

Этот сервис — просто декоратор для сервиса $timeout, который добавляет методы «flush» и «verifyNoPendingTasks».

$controller

Декоратор для $controller с дополнительным параметром bindings, полезным при тестировании контроллеров директив, использующих bindToController.

$componentController

Сервис, который может использоваться для создания экземпляров контроллеров компонентов. Полезен для модульного тестирования.

Тип

ИмяОписание
angular.mock.TzDate

ПРИМЕЧАНИЕ: это не инжектируемый экземпляр, а просто глобальный имитационный класс Date.

$rootScope.Scope

Scope типа, снабжённого вспомогательными методами, полезными для тестирования. Эти методы автоматически доступны для любого экземпляра Scope, когда модуль ngMock загружен.

Функция

ИмяОписание
angular.mock.dump

ПРИМЕЧАНИЕ: это не инжектируемый экземпляр, а просто глобальная функция.

angular.mock.module

ПРИМЕЧАНИЕ: эта функция также опубликована в окне для простоты доступа.
ПРИМЕЧАНИЕ: эта функция объявлена ТОЛЬКО при запуске тестов с jasmine или mocha

angular.mock.module.sharedInjector

ПРИМЕЧАНИЕ: эта функция объявлена ТОЛЬКО при запуске тестов с jasmine или mocha

angular.mock.inject

ПРИМЕЧАНИЕ: эта функция также опубликована в окне для простоты доступа.
ПРИМЕЧАНИЕ: эта функция объявлена ТОЛЬКО при запуске тестов с jasmine или mocha

© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.5.11/docs/api/ngMock

Spec-Zone.ru

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