Pruebas async en JavaScript
Devuelve una promesa o recibe un callback; el runner espera igual.
import test from "node:test";
import assert from "node:assert/strict";
async function load(lang) {
if (!lang) throw new RangeError("lang is required");
return { lang, steps: 45 };
}
test("resolves with the tour", async () => {
const tour = await load("javascript");
assert.deepStrictEqual(tour, { lang: "javascript", steps: 45 });
});
test("rejects without a language", async () => {
await assert.rejects(() => load(""), {
name: "RangeError",
message: /required/,
});
});
Cómo funciona
- Una función de prueba async se espera con await.
assert.rejectses la forma con promesas deassert.throws.- Una prueba que olvida el await pasa por la razón equivocada.
Palabras clave y builtins usados aquí
asyncawaitconstfromfunctionifimportreturnthrow
El intento, en números
- Líneas
- 19
- Caracteres a escribir
- 474
- Tokens
- 114
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 65 segundos.
Paso 1 de 2 en Async y hooks; paso 3 de 9 en Pruebas con node:test.