Integration Test
Testing 🟡 MidDefinition
Test qui verifie que plusieurs modules ou services fonctionnent correctement ensemble. Il valide les interactions entre composants reels (API, base de donnees, etc.).
Analogie
Comme verifier que le moteur, la boite de vitesse et les roues fonctionnent ensemble, pas juste chacun separement.
Exemple de code
// user.integration.test.js
test('creates user and retrieves it', async () => {
const res = await request(app)
.post('/users')
.send({ name: 'Alice' });
expect(res.status).toBe(201);
const user = await db.users.findById(res.body.id);
expect(user.name).toBe('Alice');
});
Cas d'usage
Pour valider que l'API, le service metier et la base de donnees collaborent correctement.
Anti-pattern
Confondre integration test avec unit test en mockant toutes les dependances, ce qui ne teste plus rien de reel.