OUJOOD.COM
Introduction : Pourquoi Tester Votre Application ?
Tester, c’est comme vérifier que votre voiture démarre avant un voyage. Avec ExpressJS, on s’assure que nos routes (comme "/bonjour") renvoient ce qu’on attend. mocha est l’outil qui fait tourner les tests, et chai est comme un ami qui dit "Oui, c’est bon !" ou "Non, ça ne va pas.".
Étape 1 : Préparer Votre Environnement
Avant de coder, préparons tout ce qu’il faut. Si vous avez suivi les tutoriels précédents, vous avez déjà Node.js et ExpressJS. Voici les étapes :
- Vérifiez Node.js : Ouvrez un terminal et tapez
node -v. Si une version apparaît (ex. : v16.13.0), c’est bon. Sinon, téléchargez Node.js sur nodejs.org. - Créez un dossier projet : Faites un dossier nommé "tests-express" sur votre ordinateur. Ouvrez-le dans un éditeur comme Visual Studio Code.
- Initialisez le projet : Dans le terminal, allez dans ce dossier avec
cd chemin/vers/tests-express, puis tapeznpm init -y. Cela crée un fichierpackage.json. - Installez les outils : Tapez
npm install express mocha chai --save-dev. Voici ce que chaque outil fait :express: Pour notre application.mocha: Lance les tests.chai: Vérifie si tout est correct.
Étape 2 : Créer une Petite Application à Tester
Commençons par une application très simple avec une seule route à tester.
Exemple de Code : Application à Tester
Créez un fichier nommé app.js dans votre dossier "tests-express" et ajoutez ce code :
var express = require('express');
var app = express();
app.get('/bonjour', function(req, res) {
res.send('Bonjour à tous !');
});
module.exports = app;
Explication Rapide
Ce code crée une route "/bonjour" qui renvoie "Bonjour à tous !". module.exports permet d’utiliser cette application dans nos tests.
Étape 3 : Écrire un Test Simple
Créons un test pour vérifier que la route fonctionne.
Exemple de Code : Fichier de Test
Créez un dossier nommé test dans "tests-express". À l’intérieur, ajoutez un fichier app.test.js avec ce code :
var chai = require('chai');
var expect = chai.expect;
var app = require('../app');
describe('Tests de notre application', function() {
it('devrait dire Bonjour sur /bonjour', function(done) {
require('http').get('http://localhost:3000/bonjour', function(res) {
var data = '';
res.on('data', function(chunk) { data += chunk; });
res.on('end', function() {
expect(res.statusCode).to.equal(200);
expect(data).to.equal('Bonjour à tous !');
done();
});
});
app.listen(3000); // Démarre le serveur pour ce test
});
});
Explication Détaillée du Code
Voici chaque partie expliquée très simplement :
- var chai = require('chai'); : On importe Chai pour vérifier les résultats.
- var expect = chai.expect; : On utilise "expect" pour dire "je m’attends à...".
- var app = require('../app'); : On importe notre application.
- describe('Tests de notre application', ...); : On groupe les tests sous ce nom.
- it('devrait dire Bonjour...', ...); : Un test qui vérifie une chose précise.
- http.get(...); : Simule une visite à "/bonjour".
- expect(res.statusCode).to.equal(200); : Vérifie que le statut est "OK".
- expect(data).to.equal('Bonjour à tous !'); : Vérifie que le message est correct.
- done(); : Dit à Mocha que le test est fini (important car c’est asynchrone).
- app.listen(3000); : Lance le serveur juste pour ce test.
Étape 4 : Lancer les Tests
Modifiez package.json pour ajouter une commande de test. Ouvrez-le et remplacez la ligne "scripts" par :
"scripts": {
"test": "mocha"
},
Ensuite, dans le terminal, tapez npm test. Vous verrez quelque chose comme :
Tests de notre application
✓ devrait dire Bonjour sur /bonjour
1 passing (XXms)
Si vous voyez "✓ passing", le test a réussi ! Sinon, Mocha vous dira ce qui ne va pas.
Conclusion
Félicitations ! Vous savez maintenant tester une application ExpressJS avec Mocha et Chai. Vous pouvez vérifier que vos routes fonctionnent sans deviner. Pour aller plus loin, explorez notre prochain tutoriel sur Déploiement avec ExpressJS ou consultez la documentation Mocha.