Как добавить провайдеров в спецификацию тестирования angular2 с жасмином, так как addProvider устарел в RC6?

Я пытаюсь написать свой beforeEach так, чтобы каждый it получает необходимые модули / провайдеры:

beforeEach(() => addProviders([
        BaseRequestOptions,
        MockBackend,
        {
            provide: Http,
            useFactory: (backend: MockBackend, options: BaseRequestOptions) => new Http(backend, options),
            deps: [MockBackend, BaseRequestOptions]
        },
        MyService
    ]));

Но с тех пор addProviders метод устарел в RC6, что является лучшей альтернативой для добавления моих провайдеров?

1 ответ

Решение

Используйте TestBed из @angular/core/testing создавать тестовые модули. Например

beforeEach(() => {
  TestBed.configureTestingModule({
    imports: [ ... ],
    declarations: [ ... ],
    providers: [
      { .. },
      MyService
    ]
  });
});

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

Смотрите более полные примеры в ng2-test-seed. Здесь приведены примеры тестирования компонентов, также использующих TestBed

Другие вопросы по тегам