Utiliser Git Bash ou WSL (sinon faire le .gitignore manuellement)
Créer un répertoire ts-with-jest
, initialiser le package.json
, le dépôt Git, le fichier .gitignore
:
mkdir ts-with-jest
cd ts-with-jest
npm init --yes
git init
echo node_modules >> .gitignore
Toujours dans le même répertoire, ici avec Yarn (préalablement installé avec npm i -g yarn
) :
yarn add --dev typescript jest ts-jest @types/jest
Ceci va générer le tsconfig.json
:
npx tsc --init
ts-jest
va ici être utilisé pour initialiser le fichier jest.config.js
, paramétré pour faciliter l'utilisation de Jest avec TypeScript.
npx ts-jest config:init
Changer la ligne suivante du package.json
:
"test": "echo \"Error: no test specified\" && exit 1"
En :
"test": "jest --watchAll"
git add .
git commit -m"Initialize project with TypeScript & Jest"
On va écrire des tests "unitaires" : permettent de tester une "unité" telle qu'une fonction, une classe, un composant...
On va souvent trouver un fichier de test .test.ts
pour un fichier .ts
. Par exemple, on va écrire un fichier foo.test.ts
contenant :
// src/foo.test.ts
// On importe la fonction à tester
import foo from './foo';
// describe() permet de définir une "suite" de tests
describe('function foo', () => {
// it() permet de définir UN test
it('when given a positive number, returns it', () => {
// expect() va permettre de définir des "expectations" (attentes)
// on s'attend à ce que foo(15) renvoie 15
expect(foo(15)).toBe(15);
});
// Un autre test
it('when given a negative number, throws an error', () => {
expect(() => foo(-10)).toThrow();
});
});
Dans le fichier src/foo.ts
, écrire une fonction qui :
- prend un nombre un paramètre
- renvoie ce nombre s'il est positif (ou nul)
- "throw" une erreur s'il est négatif
Il faut bien sûr exporter cette fonction.