2016-09-11 2 views
3

Ich versuche, meine beforeEach wie diese, so dass jeder it bekommt die benötigten Module/Provider zu schreiben: istWie Provider in Angular2 Jasmine Testspezifikation hinzugefügt werden, da AddProvider in RC6 veraltet ist?

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

Aber da addProviders Methode in RC6 veraltet, was ist eine bessere Alternative meine Anbieter hinzufügen?

+0

Zusätzlich zu der angenommenen Antwort, musste ich die unten hinzufügen, um die Tests arbeiten TestBed.compileComponents(); –

Antwort

5

Verwenden Sie TestBed von @angular/core/testing, um Testmodule zu erstellen. Zum Beispiel

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

Es ist so ziemlich das gleiche wie ein reguläres Modul die Konfiguration außer Sie nichts exportieren müssen.

Weitere ausführlichere Beispiele finden Sie in der ng2-test-seed. Es hat Beispiele für die Prüfung von Komponenten auch mit der TestBed

+0

Ich mache genau das, aber obwohl der Dienst, den ich gerade testet, in der Providerliste ist, sagt er mir, dass es keinen Provider für meinen Dienst gibt. :( – slooker

Verwandte Themen