wake-up-neo.net

Wie fixe beforeEachProviders (auf RC4 veraltet)

Ich habe gerade Angular2 von RC3 auf RC4 aufgerüstet ...

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

In meinem Gerätetest habe ich folgenden Code ...

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

Dies funktioniert gut, aber seit dem Umstieg auf RC4 habe ich eine Warnung vor beforeEachProviders.

Weiß jemand, was die neue Art ist, Dinge zu tun? Oder soll ich beforeEachProviders anstelle von '@ angle/core/testing' von woanders importieren?

16
danday74

Sie müssen addProviders aus @ angle/core/testing importieren. 

Anstatt:

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

Sie möchten das tun:

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

Quelle: RC4 Änderungsprotokoll

21
mifish

Nachdem Sie einige andere Dokumente geprüft haben, scheint es, als würden Sie wollen:

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

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

14
Tye2545

Hier ist ein vollständiges Beispiel für einen Windows-Referenzdienst:

import { TestBed, inject } from '@angular/core/testing';
import { WindowRef } from './window-ref';

describe('WindowRef', () => {
  let subject: WindowRef;

  beforeEach(() => {
    TestBed.configureTestingModule({
      providers: [
        WindowRef
      ]});
  });

  beforeEach(inject([WindowRef], (windowRef: WindowRef) => {
    subject = windowRef;
  }));

  it('should provide a way to access the native window object', () => {
    expect(subject.nativeWindow).toBe(window);
  });
});
1
Steve Brush