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))
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.

Zum Weiterlesen

Fehler in der Frage

Testen · Senior · Frage 33

Teste dich selbst

Mach den Test Testen · Senior: Fragen und Antworten werden gemischt, und am Ende wartet eine Übersicht der Fehler.

Diesen Test machen