0

我一直在使用以下模式在我的组件中使用react.

await expect(new Promise((resolve) => {
  let intervalId = setInterval(() => {
    component.update();

    if (myCondition) {
      clearInterval(intervalId);

      resolve(true);
    }
  }, 25);
})).resolves.toBe(true);

这很好用并且保证可以工作,但是写起来很痛苦而且很冗长。

我一直在研究可能使用setImmediate而不是setInterval. 这将阻止轮询(并允许我测试当前不可能的否定断言,而无需使用try/引入另一个级别的详细程度catch),但是否可以保证使用react异步机制,例如setState

例如,如果react决定批量尝试批量处理一些 setState 事件或类似的事情,并在调度状态更新操作setImmediate之前放入事件循环队列中,会发生什么?react

我不想在我的测试中引入片状。

4

0 回答 0