(角4)アプリ:クラスのプライベートメソッドをテストすることは可能ですか?私はこのコードを持っている私のイオン3では
this.$observable.subscribe(success => {
if (success) {
this.toastCtrl.create({
message: 'message,
duration: 3000,
position: 'middle'
}).present();
}
});
私がテストしたい何がtoastCtrl
が呼び出されたかどうかである$observable
はsuccess = true
を発しています。 (なお、これはとしてはおそらくトーストを生成する際に、いくつかの遅延があるを動作しません。しかし
it('when true, show toast', done => {
fixture.whenStable().then(() => {
component.$observable.subscribe(success => {
if (success) {
fixture.detectChanges();
console.log(debugElement.query(By.css('.toast-message')));
done();
// expect(debugElement.query(By.css('.toast-message')).nativeElement).toBeDefined();
}
});
});
});
::私はとイオンネイティブが、その要素を使用してい
これは私のテストは次のようになりますそのクラスはDOMに実際に挿入されます - 3秒間であっても100秒で試しても)
私はで非同期コードをテストしていますか?
ない場合は、はどのように私はそれがコンポーネント内の私有財産だからthis.toastCtrl
は明らかに、私はできません(と呼ばれていることをテストします - それは
constructor(private toastCtrl: ToastController)
@トーラザブロもっと正確になりますか? – dragonmnl
@estusなぜそれが重複しているのかわかりません。それは同じ概念ですが、2つの異なる視点と異なるケースからです。 – dragonmnl
答えを見てください。それは、私的な方法でスパイすることについてのあなたの質問に正確に答えます。 TypeScriptにprivateメソッドがある場合、Reflect.getまたは 'component ['toastCtrl]'でアクセスできます。これはリフレクションとみなされます。 – estus