Corriger un test avec timer asynchrone non maîtrisé
Type d'évaluation
Mise en situation réelle
Analyse
Intelligence Artificielle
Compétences ciblées
Scénario Technique
Contexte Une fonction debounce(fn, delay) utilise setTimeout pour retarder l’exécution. Le Problème Le test suivant échoue aléatoirement : function debounce(fn, delay) { let timer; return (...args) => { clearTimeout(timer); timer = setTimeout(() => fn(...args), delay); }; } test("appelle la fonction après délai", () => { const mockFn = jest.fn(); const debounced = debounce(mockFn, 1000); debounced(); expect(mockFn).toHaveBeenCalled(); }); Le test ne contrôle pas le temps. Contraintes Utiliser des fake timers pour rendre le test déterministe. Livrable attendu Un test corrigé maîtrisant l’horloge et validant correctement le comportement.
Prêt à évaluer ce talent ?
Accédez à l'interface de test complète pour soumettre votre architecture ou votre code.