私はジャスミンに次のコードを持っている:Angular2でdetectChanges()を正しく実装するにはどうすればよいですか?
it('should pass on writing secondvalue in the input', async(() => {
const fixture=TestBed.createComponent(AppComponent);
const app=fixture.debugElement.nativeElement.querySelector("input").getAttribute("value");
expect(app).toContain("firstvalue");
fixture.detectChanges();
expect(app).toContain("secondvalue");
}));
問題は、すぐに私がテストを実行すると、テストは失敗したということです。私はそれがdetectChanges()のために待つことを期待しますが、それはしません。
正しく実装するには:入力の2番目の値の入力を待機し、値が "secondvalue"になるかどうかを確認します。
fixture.detectChanges()は、誰かが書き込みを開始したときに入力がトリガーされるのを待つなど、偶数ブロッカーのように動作しませんか?
新しい値を明示的に指定する必要がありますか?それはカルマ・ランナーからのインプットの中に置くことができますか? – masterach
@masterach値をテストする前に、おそらく 'fixture.detectChanges()'を呼び出す必要があります。また、それはあまり明確ではなく、コンポーネントがどのように見えているのか、そこでは値がどのように変更されていますか。 – hlfrmn