Qu'est-ce que l'API Mocking ? Outils, Cas d'usage, Exemples
L'API mocking simule une API sans le backend réel — pour dev parallèle, isolation tests, contract testing. Outils : Postman, WireMock, MSW.
Qu'est-ce que l'API mocking ?
L'API mocking est la pratique de créer une version fake d'une API qui retourne des responses pré-définies au lieu d'exécuter de la logique backend réelle. Le mock ressemble et se comporte comme la vraie API du point de vue du client — mêmes URLs, mêmes formats request/response — mais n'est pas connecté à une base de données, ne déclenche pas de side effects et retourne des responses déterministes.
L'API mocking permet trois cas d'usage majeurs : développement parallèle, isolation de tests et contract testing.
Quand utiliser l'API mocking
- Dev frontend avant que le backend soit prêt.
- Tests unitaires et d'intégration.
- Tester scénarios d'erreur.
- Travailler offline / air-gapped.
- Éviter rate limits / coûts.
- Contract testing.
- Environnements démo/sales.
Types d'API mocking
Mocks statiques
Même response à chaque fois, peu importe l'input.
Mocks dynamiques
Response varie selon la requête.
Mocks enregistrés
Capturer des responses API réelles dans un fichier, replay plus tard.
Mocks contract
Générés depuis une spec OpenAPI/Swagger.
Mocks stateful
Tracker l'état entre requêtes.
Outils d'API mocking populaires
| Outil | Meilleur pour | Notes |
|---|---|---|
| Postman Mock Server | Mocks rapides depuis collections existantes | Gratuit |
| Mockoon | Mocks GUI desktop locaux | Gratuit, open-source |
| WireMock | Mocking scriptable Java-based | Mature |
| MSW (Mock Service Worker) | Mocks browser/Node via Service Worker | Moderne |
| Mirage.js | Mocks app JS | Stateful, in-app |
| Prism (Stoplight) | Mocks OpenAPI-driven | Auto-générés depuis spec |
| nock | Library Node.js HTTP mocking | Interception per-test |
| VCR (Ruby) | Enregistrer + replay HTTP | Test-focused |
| json-server | API REST rapide depuis fichier JSON | Zero-config prototyping |
Mocking vs stubbing vs faking
| Terme | Définition | Exemple |
|---|---|---|
| Stub | Retourne response canned ; pas de comportement | API retourne toujours {users: ["alice"]} |
| Mock | Stub + vérifie qu'il a été appelé correctement | Test asserte l'API a été appelée 1x avec X args |
| Fake | Implémentation in-memory fonctionnelle | Base de données in-memory pour tests |
| Spy | Wrap call réel, enregistre info sur les calls | Appelle l'API réelle mais log ce qui a été envoyé |
Patterns d'API mocking courants
Mock server avec environment switch
const API_BASE = process.env.API_BASE || 'https://api.example.com';
fetch(`${API_BASE}/users/42`);Interception MSW dans les tests
import { setupServer } from 'msw/node';
import { rest } from 'msw';
const server = setupServer(
rest.get('/api/users/:id', (req, res, ctx) => {
return res(ctx.json({ id: req.params.id, name: 'Alice' }));
})
);Pièges du mocking
- Le mock dévie de la réalité.
- Sur-dépendance aux mocks en CI.
- Mocks trop permissifs.
- Mocks ne simulent pas latence / erreurs.
- Mocks stateful trop complexes.
Contract testing : le mocking bien fait
Les outils de contract testing (Pact, Spring Cloud Contract) vérifient que les responses mock correspondent à ce que la vraie API retourne réellement.
FAQ : API mocking
Quelle est la différence entre mocking et utiliser une API staging ?
Les mocks sont locaux, rapides, déterministes. Les APIs staging sont des environnements réels-mais-non-prod.
Devrais-je mocker toutes les APIs externes dans les tests ?
Oui pour les unit tests. Pour les integration tests, frapper au moins quelques APIs réelles.
Comment je mock des responses dynamiques ?
La plupart des outils supportent les template variables ou responses programmatiques.
Puis-je mocker GraphQL ou gRPC ?
Oui. MSW supporte GraphQL nativement. Pour gRPC outils comme grpc-mock.
Quel est le coût de l'API mocking ?
Principalement gratuit.
Les mocks ralentissent-ils les tests ?
Non — ils accélèrent les tests. Tests avec mocks tournent typiquement 10-100x plus rapidement.
Testez les API mocks sous charge avec LoadFocus
Si vous avez construit des APIs mock et voulez vérifier qu'elles gèrent la charge que votre vraie API verra, LoadFocus exécute des scripts JMeter et k6 depuis 25+ régions avec jusqu'à 12 500 VUs. Inscrivez-vous sur loadfocus.com/signup.
Outils LoadFocus connexes
Mettez ce concept en pratique avec LoadFocus — la plateforme même qui propulse tout ce que vous venez de lire.