在我的Angular应用程序测试套件中,我有一个执行以下操作的测试用例:
it('test case with async operation', async(() => {
// open modal
// do some stuff
fixture.whenStable().then(() => {
// do some async stuff and close the modal
// some expetations
});
}));
一切正常,除了当该测试实际完成执行时,modal仍处于打开状态(whenStable
回调将在稍后执行,关闭模式)。这会导致其他测试失败,因为模式仍会打开一小会儿。
请注意,模态不是夹具组件的一部分,因此我使用document.querySelector
请注意,测试用例包装在async
中。
问题在于我必须等待模态内部的异步操作g,这迫使我使用async
和whenStable
。为此,我还尝试使用fakeAsync
和tick
代替async
,但这会给我带来错误error 1 timer(s) still in the queue
。