各INPUTフィールドが空でなければならないというテストを書いています。このテストを書く方法がわからないか(Jasmineが複数のアクションを1つのアクションで処理できない場合)。ここで角とジャスミン:it()内の複数のアクションが順番に実行されない
私が書くことを試みた何のようなものです:テストが実行され、その期待()アクションが評価され
it('fails to login for blank credential fields', async(() => {
fixture.detectChanges();
fixture.whenStable().then(() => {
comp = fixture.componentInstance;
de = fixture.debugElement;
let elLoginButton = de.query(By.css('#login'));
comp.name = '';
comp.password = 'filled';
elLoginButton.triggerEventHandler('click', null);
fixture.detectChanges();
fixture.whenStable().then(() => {
expect(comp.name).toEqual('', 'name of (blank, filled) test');
expect(comp.password).toEqual('filled', 'password of (blank, filled) test');
});
comp.name = 'filled';
comp.password = '';
elLoginButton.triggerEventHandler('click', null);
fixture.detectChanges();
fixture.whenStable().then(() => {
expect(comp.name).toEqual('filled', 'name of (filled, blank) test');
expect(comp.password).toEqual('', 'password of (filled, blank) test');
});
});
}));
私は(空白、満たされた)ことを意図し、その後、(空白、満たされた)テストが可能完了しました。
デバッガで表示されるのは、「塗りつぶされた、空白の」テストが実行されたために、「クリック」のバックグラウンドプロセスが実行されていることです。次に、(ブランク、塗りつぶし)のバックグラウンドプロセスが実行されます。次に、expects()のすべてが実行されます。これは、expect()の(塗りつぶされた、空白の)バージョンが、(空白の、塗りつぶされた)テストからの "comp"を参照することを意味します。
最後に、私は2つの異なるit()テストを作成しました。これには「2つの別々のテスト」よりも良い方法がありますか?
あなたは!ありがとう。私はfakeAsyncをいつ使用するのか完全に把握していません。このプロジェクトは私にそこに行かせます。 –