2017-07-20 1 views
0

J'ai des problèmes avec les composants/pages de test ioniques 2/3 qui utilisent des composants ioniques qui impliquent des superpositions (Alerte, Toast, Modal, ActionSheet). Quand n'importe quel code appelle .present() sur les composants ci-dessus, j'obtiens l'erreur suivante. J'ai essayé de se moquer du contrôleur approprié, mais cela ne semble pas être le problème.Toasts moqueurs ioniques 2/3

Toute aide serait grandement appréciée.

Code page

constructor(public navCtrl: NavController, public navParams: NavParams, public viewCtrl: ViewController) {} 

save() { 
if (this.object.validate()) { 
    this.provider.save(this.object).then(() => { 
    }).catch((error) => { 
    console.log("Error saving object: ", error); 
    }); 
} else { 
    let toast = this.toastCtrl.create({ 
    message: 'All fields (except notes) must be filled before you can save a record', 
    duration: 3000, 
    dismissOnPageChange: true, 
    cssClass: "toastError" 
    });toast.present(); 
}} 

beforeEach(() => { 
    fixture = TestBed.createComponent(AddRecordPage); 
    comp = fixture.componentInstance; 
}); 

afterEach(() => { 
    fixture.destroy(); 
    comp = null; 
    de = null; 
    el = null; 
}); 

tout code qui teste cette méthode d'enregistrement échouera avec l'erreur _getPortal

MISE À JOUR: J'ai plus isolé jusqu'à l'objet App, il semble que c'est là _getPortal lancers francs l'erreur de; cependant, je n'ai mon objet app primaire injecté .....

+1

pouvez-vous afficher le code d'une page où vous appelez l'un de ces composants? –

+0

Je ne peux pas poster toute la page en raison de la politique de l'entreprise, mais c'est la méthode générale qui échoue –

+0

ce qui est 'comp'? – Duannx

Répondre

0

Vous devez se moquer de votre application pour contourner ce problème, fournit ionique angulaire d'une maquette, vous pouvez utiliser ... IE:

import { mockApp } from 'ionic-angular/util/mock-providers'; 

beforeEach(() => { 
    TestBed.configureTestingModule({ 
    {provide: App, useValue: mockApp()}, 
    }) 
    //etc 
} 

Avant de créer votre composant de banc d'essai.