Kurzreferenz

Nock HTTP-Mocking Spickzettel

Kurzreferenz für Nock: HTTP-Server-Mocking und Expectation-Bibliothek für Node.js, URL-Filterung, Query-Matching und Mock-Antworten.

· Veröffentlicht

Nock ist eine HTTP-Server-Mocking- und Expectation-Bibliothek für Node.js, die ausgehende Netzwerkaufrufe über http.request abfängt.

Grundlegendes Mocking

const nock = require('nock');

// GET-Endpunkt mocken
const scope = nock('https://api.example.com')
  .get('/users/1')
  .reply(200, {
    id: 1,
    name: 'Alice Cooper'
  });

// Nicht gemockte Anfragen an das echte Netzwerk durchlassen
const unmockedScope = nock('https://api.example.com', {
  allowUnmocked: true
});

Request-Filterung & Query-Matching

Query-Parameter abgleichen

nock('https://api.example.com')
  .get('/search')
  .query({ q: 'cheese', page: '1' })
  .reply(200, { results: [] });

Pfade filtern (dynamische Tokens maskieren)

Dynamische Tokens oder Zeitstempel vor dem Abgleich entfernen:

nock('https://api.example.com')
  .filteringPath(/[&?]token=[^&]*/g, '')
  .get('/user')
  .reply(200, { authorized: true });

// Fängt "/user?token=xyz123" als "/user" ab

POST-Anfragen & Header mocken

nock('https://api.example.com')
  .matchHeader('authorization', 'Bearer token_123')
  .post('/checkout', { items: [1, 2] })
  .reply(201, { status: 'created' }, {
    'X-Custom-Header': 'MockValue'
  });

Assertions & Bereinigung

// Prüfen, ob alle definierten Interceptoren aufgerufen wurden
scope.isDone(); // => true / false

// Alle aktiven Interceptoren bereinigen
nock.cleanAll();

// Ursprüngliches HTTP-Verhalten von Node.js wiederherstellen
nock.restore();

Referenzen

Verwandte Themen