El módulo assert en JavaScript
Igualdad profunda, throws y las variantes estrictas que conviene preferir.
import test from "node:test";
import assert from "node:assert/strict";
test("deep comparisons", () => {
assert.deepStrictEqual({ a: [1, 2] }, { a: [1, 2] });
assert.notDeepStrictEqual({ a: 1 }, { a: "1" });
assert.deepStrictEqual(new Set([1]), new Set([1]));
});
test("throwing", () => {
assert.throws(() => JSON.parse("{oops"), SyntaxError);
assert.throws(() => { throw new TypeError("bad shape"); }, /shape/);
assert.doesNotThrow(() => JSON.parse("{}"));
});
test("numbers and truthiness", () => {
assert.ok(0.1 + 0.2 !== 0.3);
assert.match("typestar.io", /^[a-z]+\.io$/);
});
Cómo funciona
assert/strictvuelve estricta cada comparación.deepStrictEqualcompara estructura y tipos.assert.throwsacepta un objeto de coincidencia o una regex.
Palabras clave y builtins usados aquí
JSONSetfromimportthrowthrows
El intento, en números
- Líneas
- 19
- Caracteres a escribir
- 581
- Tokens
- 178
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 102 segundos.
Paso 2 de 2 en Selección; paso 8 de 9 en Pruebas con node:test.