typestar

Mocks en JavaScript

t.mock.fn registra llamadas; t.mock.method reemplaza un método de un objeto.

import test from "node:test";
import assert from "node:assert/strict";

function record(store, lang, tpm) {
  if (tpm <= 0) throw new RangeError("tpm must be positive");
  return store.save(lang, tpm);
}

test("saves through the store", (t) => {
  const save = t.mock.fn(() => "saved");
  const result = record({ save }, "go", 104);

  assert.equal(result, "saved");
  assert.equal(save.mock.callCount(), 1);
  assert.deepEqual(save.mock.calls[0].arguments, ["go", 104]);
});

test("replaces a method for one test", (t) => {
  const clock = { now: () => 0 };
  t.mock.method(clock, "now", () => 1234);
  assert.equal(clock.now(), 1234);
});

Cómo funciona

  1. El arreglo calls del mock guarda los argumentos y el resultado.
  2. Un método reemplazado se restaura al terminar la prueba.
  3. Verifica la llamada, no la implementación.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
22
Caracteres a escribir
620
Tokens
184
Ritmo de tres estrellas
110 tpm

Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 100 segundos.

Escribe este fragmento

Paso 1 de 2 en Mocks y tiempo; paso 5 de 9 en Pruebas con node:test.

← Anterior Siguiente →