Spec-Zone.ru › Angular.js 1.8

Улучшить эту документацию Просмотреть исходный код 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–2020 Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
https://code.angularjs.org/1.8.2/docs/api/ngMock/function/angular.mock.module.sharedInjector

Spec-Zone.ru

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