angular - Hvordan fikse beforeEachProviders (utdatert på RC4)


Jeg har nettopp oppgradert Angular2 fra RC3 til RC4 ...

import {
  expect, it, iit, xit,
  describe, ddescribe, xdescribe,
  beforeEach, beforeEachProviders, withProviders,
  async, inject
} from '@angular/core/testing';

I min enhetstest har jeg følgende kode ...

beforeEachProviders(() => [
    {provide: Router, useClass: MockRouter}
]);

Dette fungerer bra, men siden jeg gikk over til RC4 har jeg en advarsel om foreldet funksjon på beforeEachProviders.

Noen som vet hva den nye måten å gjøre ting på er? Eller bør jeg importere beforeEachProviders fra et annet sted i stedet for '@angular/core/testing'?

Svar #1

Du må importere addProviders fra @angular/core/testing.

I stedet for:

beforeEachProviders(() => [
    {provide: Router, useClass: MockRouter}
]);

Du vil ønske å gjøre dette:

beforeEach(() => {
    addProviders([
        {provide: Router, useClass: MockRouter}
    ])
});

Kilde: RC4 Endringslogg

Svar #2

Etter å ha gjennomgått noen andre dokumenter, ser det ut til at du ønsker:

beforeEach(() => TestBed.configureTestingModule({
        providers: [
            { provide: Service, useClass: MockService }
        ]})
    );

Kilde: https://angular.io/guide/dependency-injection

Relaterte artikler