Testen · Senior · Frage 33 von 75
Warum kann jest.useFakeTimers() einen Test aufhängen, der auf ein Promise mit setTimeout wartet?
vi.useFakeTimers();
await sleep(1000); // inside: new Promise(r => setTimeout(r, 1000))- 1
awaitist zusammen mit Fake Timers überhaupt nicht erlaubt - 2Der Timer löst nie aus, weil der Test bei
awaitfesthängt - 3Fake Timers zerstören alle Promises in der Testumgebung
Antwort zeigen
Richtige Antwort: Der Timer löst nie aus, weil der Test bei await festhängt
Erklärung
Starte das Promise, dann await vi.advanceTimersByTimeAsync(1000), dann warte das Promise ab; die async-Varianten leeren auch Microtasks.