Supertest

Testing 🟢 Junior

Definition

Librairie de test HTTP pour Node.js qui permet de tester les endpoints d'une API Express/Fastify sans demarrer un vrai serveur.

Analogie

Comme tester un interphone sans sortir de l'immeuble : vous simulez l'appel de l'exterieur depuis l'interieur.

Exemple de code

const request = require('supertest');
const app = require('../app');

test('GET /users returns 200', async () => {
  const res = await request(app)
    .get('/users')
    .expect(200);
  expect(res.body).toHaveLength(3);
});

Cas d'usage

Pour tester rapidement les routes d'une API Node.js dans les tests d'integration sans serveur reel.

Anti-pattern

Utiliser Supertest pour des tests E2E complets alors qu'il ne teste que la couche HTTP.

Termes lies

#testing#tooling#backend