Snabbreferens

Fusklapp för HTTP-mockning med Nock

Snabbreferens för Nock: HTTP-servermockning för Node.js, URL-filtrering, query-matchning och simulerade svar.

· Publicerad

Nock är ett bibliotek för HTTP-servermockning och förväntningar i Node.js som fångar upp utgående nätverksanrop via http.request.

Grundläggande mockning

const nock = require('nock');

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

// Tillåt omockade förfrågningar att gå vidare till det riktiga nätverket
const unmockedScope = nock('https://api.example.com', {
  allowUnmocked: true
});

Förfrågningsfiltrering & Query-matchning

Matcha Query-parametrar

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

Filtrera sökvägar (maskera dynamiska tokens)

Ta bort dynamiska tokens eller tidsstämplar före matchning:

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

// Fångar upp "/user?token=xyz123" som "/user"

Mocka POST-förfrågningar & Headers

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

Assertions & Rensning

// Verifiera att alla deklarerade interceptors anropades
scope.isDone(); // => true / false

// Rensa alla aktiva interceptors
nock.cleanAll();

// Återställ Node.js ursprungliga HTTP-beteende
nock.restore();

Referenser

Relaterade ämnen