MIve hat die folgenden Komponententests, die eine Komponente testen, die ich in Ionic 2 geschrieben habe. Die Komponententests geben einen Fehler von einer der ionischen Bibliotheken, ich nehme an, dass ich es nicht richtig mokieren SolchIonic 2 ViewController Unit Test
Dies ist der relevante Auszug, der den ViewController von der Komponente verwendet, die getestet wird.
this.locationService.getLocationById(this.selectedLocation)
.subscribe((location: any) => {
this.viewController.dismiss(location.doc)
});
Der Test schlägt fehl, und ich erhalte die folgende Stack-Trace
Chrome 53.0.2785 (Linux 0.0.0)
TypeError: viewCtrl._setHeader is not a function
at new Header (webpack:///home/milinda/workspaces/eclipse/inspection/addedinspection/Inspection-Upgrade/~/ionic-angular/components/toolbar/toolbar.js:14:0 <- src/test.ts:11833:30)
at new Wrapper_Header (/IonicModule/Header/wrapper.ngfactory.js:7:18)
Dies ist auf die ViewController
Linie verwandt ist, das ich einen Jasmin Spion geschaffen für
{ provide: ViewController, useClass: class { ViewController = jasmine.createSpy("viewController"); } },
Nach Ein Blick auf die Codebasis Ich fand die _setHeader-Methode hier
Ich habe auch versucht, einen benutzerdefinierten Anbieter zu schreiben, bekam aber den gleichen Fehler. Irgendeine Idee darüber, was die richtige Methode ist, den ViewController zu testen.
Zusätzlich manchmal nach der Lösung der Frage Viewcontroller ein Problem von NavParams auftreten kann vielleicht
Von vorotung, gibt es in Mocks in ionischen auch gebaut: Import {MockApp, MockConfig, MockPlatform, MockView} von "ionic-angular/util/Mock-Provider"; und verwende es wie {provide: ViewController, useValue: mockView()}, – eesdil