如何使Angular测试在执行之前等待先前的异步操作完成

时间:2019-08-03 09:14:18

标签: angular typescript ngx-bootstrap angular-test ngx-bootstrap-modal

在我的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,这迫使我使用asyncwhenStable。为此,我还尝试使用fakeAsynctick代替async,但这会给我带来错误error 1 timer(s) still in the queue

0 个答案:

没有答案