Spec-Zone.ru › Angular.js 1.7

Улучшить эту документацию Просмотреть исходный код angular.mock.module.sharedInjector

  1. функция в модуле ngMock

Обзор

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

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

Используйте sharedInjector, когда вы хотите воспользоваться преимуществами beforeAll(), или методами before() mocha. Вызовите module.sharedInjector() перед настройкой любых других хуков, которые будут создавать (т.е. вызывать module()) или использовать (т.е. вызывать inject()) инжектор.

Вы не можете вызвать sharedInjector() из контекста, уже использующего sharedInjector().

Как правило, beforeAll используется для создания множества утверждений о единой операции. Это может сократить время выполнения тестов, поскольку настройка теста не нужно повторно запускать, и это позволяет проводить более сфокусированные тесты, каждый с одним утверждением.

describe("Deep Thought", function() {

  module.sharedInjector();

  beforeAll(module("UltimateQuestion"));

  beforeAll(inject(function(DeepThought) {
    expect(DeepThought.answer).toBeUndefined();
    DeepThought.generateAnswer();
  }));

  it("has calculated the answer correctly", inject(function(DeepThought) {
    // Because of sharedInjector, we have access to the instance of the DeepThought service
    // that was provided to the beforeAll() hook. Therefore we can test the generated answer
    expect(DeepThought.answer).toBe(42);
  }));

  it("has calculated the answer within the expected time", inject(function(DeepThought) {
    expect(DeepThought.runTimeMillennia).toBeLessThan(8000);
  }));

  it("has double checked the answer", inject(function(DeepThought) {
    expect(DeepThought.absolutelySureItIsTheRightAnswer).toBe(true);
  }));

});

© 2010–2018 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.7.8/docs/api/ngMock/function/angular.mock.module.sharedInjector

Spec-Zone.ru

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