Spec-Zone.ru › Angular.js 1.6

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

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

Обзор

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

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

Используйте sharedInjector, когда вы хотите воспользоваться методами Jasmine's beforeAll(), или mocha's before(). Вызовите 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.6.9/docs/api/ngMock/function/angular.mock.module.sharedInjector

Spec-Zone.ru

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