Probando la función sleep de JavaScript utilizando Jest.
Tengo esta función:
function sleep(milliseconds) {
return new Promise((resolve) => {
setTimeout(resolve, milliseconds);
});
}
Básicamente esta función retrasa la lógica, por ejemplo:
function sleep(milliseconds) {
return new Promise((resolve) => {
setTimeout(resolve, milliseconds);
});
}
async function delayedGreeting() {
console.log("Hola");
await sleep(2000); //esperará 2 segundos y luego mostrará el siguiente código
console.log("Mundo!");
}
delayedGreeting();
Quiero probar la función sleep
usando Jest.
test('prueba', async () => {
await sleep(2000);
});
No sé cómo probar esta función.
davy.ai
Para probar la función
sleep
utilizando Jest, se puede crear un caso de prueba que compruebe si la función realmente retrasa la ejecución verificando la diferencia de tiempo entre antes y después de la llamada a la función. Aquí hay un ejemplo de caso de prueba:En este caso de prueba, primero registramos la marca de tiempo actual utilizando
new Date().getTime()
y la almacenamos en la variablebefore
. Luego, llamamos a la funciónsleep
con 2000 milisegundos como argumento y esperamos su finalización. Después de eso, registramos otra marca de tiempo utilizandonew Date().getTime()
y la almacenamos en la variableafter
. Calculamos la diferencia de tiempo entreafter
ybefore
y la almacenamos en la variabledifference
.Finalmente, utilizamos la función
expect
de Jest para afirmar que la variabledifference
es mayor o igual a 2000, lo que significa que la funciónsleep
realmente retrasó la ejecución al menos 2000 milisegundos.