Dans ce premier chapitre, nous allons voir comment installer et créer nos premiers tests en utilisant le Framework Mocha.
Pourquoi Mocha
Mocha n'est pas le seul Framework qui permet de créer des tests en JavaScript, il en existe d'autres tel que Jasmine ou Tape. Mocha est un Framework assez particulier, car il n'arrive avec aucune librairie pour gérer les assertions ni aucun moyen de créer des Mocks. L'avantage c'est que l'on va pouvoir utiliser les modules que l'on souhaite pour gérer ces tâches-là et adapter le Framework à nos envies. Si vous n'aimez pas forcément cette philosophie, il est tout à fait possible de commencer à apprendre Mocha et passer plus tard sur un autre Framework. La syntaxe ne sera pas si différente que ça
Installation
L'installation de mocha se fait très simplement en utilisant npm.
npm install -g mocha
Vous pouvez aussi choisir de l'installer de manière locale en utilisant le paramètre --save-dev
. Dans ce cas-là il vous faudra lancer la commande mocha depuis le dossier node_modules.
Nos premiers tests
Maintenant que mocha est installé sur notre système on va pouvoir créer nos premiers tests. Mocha dispose de plusieurs interfaces qui vont vous permettre d'écrire testent différemment. Le choix d'une interface va surtout dépendre de votre manière d'écrire vos tests, dans cette formation nous allons utiliser l'interface BDD que je trouve plus simple à comprendre. Cette interface commence par le mot-clé describe
qui permet de décrire en quoi va consister notre test, suivi de fonctions ìt
qui permettront de décrire un scénario de test
describe('Multiplication', function(){
it('should work', function(){
});
});
En l'état, le test n'est pas réellement utile, il nous faut gérer ce que l'on appelle des assertions. Ces assertions nous permettent de tester qu’une valeur correspond bien à une autre et de vérifier que ce que l'on attend est bien ce que l'on obtient. Pour le moment, nous allons nous contenter du Framework d'assertion de NodeJS
var assert = require('assert');
describe('Multiplication', function(){
it('should work', function(){
assert.equal(2*3, 6);
});
});