javascript / expert
Snippet
Automatisches Funktions- und Timer-Mocking mit der node:test Mock-API
Node.js bietet integrierte Mocking-Dienstprogramme über den node:test-Kontext (t.mock). Dies ermöglicht das Nachverfolgen von Funktionsaufrufen, das Überprüfen von Aufrufargumenten und das Fälschen von System-Timern ohne externe Bibliotheken.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import { test } from 'node:test';import assert from 'node:assert/strict';test('verifies mock timer and function invocation tracking', (t) => {const fn = t.mock.fn((a, b) => a + b);assert.equal(fn(2, 3), 5);assert.equal(fn.mock.callCount(), 1);assert.deepEqual(fn.mock.calls[0].arguments, [2, 3]);t.mock.timers.enable({ apis: ['setTimeout'] });let executed = false;setTimeout(() => { executed = true; }, 1000);t.mock.timers.tick(1000);assert.equal(executed, true);});
nodejs
Erklärung
1
const fn = t.mock.fn((a, b) => a + b);
Erstellt einen überwachten Spy, der die Zielimplementierung im Testkontext umschließt.
2
t.mock.timers.enable({ apis: ['setTimeout'] });
Fälscht native Zeit-APIs, um synchrone, deterministische Ausführungen von Timer-Callbacks zu ermöglichen.
3
t.mock.timers.tick(1000);
Rückt die virtuelle Uhr um 1000 Millisekunden vor, um registrierte Timeouts auszulösen.