Aller au contenu principal
Version: 26.x

Premiers pas

Installation de Jest avec yarn :

yarn add --dev jest

Ou npm :

npm install --save-dev jest

Remarque : la documentation de Jest utilise les commandes yarn mais npm fonctionnera également. Vous pouvez comparer les commandes yarn et npm dans les docs de yarn.

Commençons par écrire un test pour une hypothétique fonction qui additionne deux nombres. Tout d’abord, créez un fichier sum.js :

function sum(a, b) {
return a + b;
}
module.exports = sum;

Ensuite, créez un fichier nommé sum.test.js. Il s'agit de notre test actuel :

test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});

Ajoutez la section suivante à votre package.json :

{
"scripts": {
"test": "jest"
}
}

Enfin, lancez yarn test ou npm run test et Jest affichera ce message :

PASS ./sum.test.js
✓ adds 1 + 2 to equal 3 (5ms)

Vous venez d'écrire votre premier test avec Jest avec succès !

Ce test utilise expect et toBe pour tester que deux valeurs sont exactement identiques. Pour connaître les autres éléments que Jest peut tester, consultez Utilisation des comparateurs.

Exécution en mode ligne de commande#

Vous pouvez exécuter Jest directement depuis le CLI (si celui-ci est globalement disponible dans votre PATH, par exemple yarn global add jest ou npm install jest --global) avec une variété d'options utiles.

Voici comment exécuter Jest sur des fichiers correspondant à my-test, en utilisant config.json comme fichier de configuration et afficher une notification de l'OS natif après l'exécution :

jest my-test --notify --config=config.json

Si vous souhaitez en apprendre davantage sur l'exécution de jest en mode ligne de commande, consultez la page Options CLI de Jest.

Configuration additionnelle#

Générez un fichier de configuration de base#

Basé sur votre projet, Jest vous posera quelques questions et créera un fichier de configuration de base avec une courte description pour chaque option :

jest --init

Utilisez Babel#

Pour utiliser Babel, installez les dépendances requises via yarn :

yarn add --dev babel-jest @babel/core @babel/preset-env

Configurez Babel pour cibler votre version actuelle de Node en créant un fichier babel.config.js à la racine de votre projet :

// babel.config.js
module.exports = {
presets: [['@babel/preset-env', {targets: {node: 'current'}}]],
};

La configuration idéale pour Babel dépendra de votre projet. Consultez la documentation de Babel pour plus de détails.

Faites en sorte que votre configuration Babel soit adaptée à Jest

Jest définira process.env.NODE_ENV avec 'test' s'il n'est pas défini avec quelque chose d'autre. Vous pouvez l'utiliser dans votre configuration pour paramétrer de manière conditionnelle uniquement la compilation nécessaire pour Jest, par exemple.

// babel.config.js
module.exports = api => {
const isTest = api. nv('test');
// Vous pouvez utiliser isTest pour déterminer les presets et les plugins à utiliser.
return {
// ...
};
};

Remarque : babel-jest est automatiquement installé lorsque vous installez Jest et transformera automatiquement les fichiers si une configuration de babel existe dans votre projet. Pour éviter ce résultat, vous pouvez réinitialiser explicitement l'option de configuration transform :

// jest.config.js
module.exports = {
transform: {},
};
Prise en charge de Babel 6

Jest 24 a abandonné le support pour Babel 6. Nous vous recommandons fortement de passer à Babel 7, qui est activement maintenu. Cependant, si vous ne pouvez pas passer à Babel 7, continuer à utiliser Jest 23 ou mettez le à jour vers Jest 24 avec babel-jest verrouillé à la version 23, comme dans l'exemple ci-dessous :

"dependencies": {
"babel-core": "^6.26.3",
"babel-jest": "^23.6.0",
"babel-preset-env": "^1.7.0",
"jest": "^24.0.0"
}

Bien que nous recommandons généralement d'utiliser la même version de chaque paquet Jest, cette solution de contournement vous permettra de continuer à utiliser la dernière version de Jest avec Babel 6 pour le moment.

Utilisez Webpack#

Jest peut être utilisé dans les projets qui utilisent webpack pour gérer les ressources, les styles et la compilation. webpack offre quelques défis singuliers par rapport à d'autres outils. Consultez le guide webpack pour commencer.

Utilisez parcel#

Jest peut être utilisé dans les projets qui utilisent parcel-bundler pour gérer les ressources, les styles et la compilation de manière similaire à webpack. Parcel nécessite aucune configuration. Reportez-vous à la documentation officielle pour commencer.

Utilisez TypeScript#

Jest prend en charge TypeScript, via Babel. Tout d'abord, assurez-vous d'avoir suivi les instructions sur l'utilisation de Babel ci-dessus. Ensuite, installez @babel/preset-typescript via yarn :

yarn add --dev @babel/preset-typescript

Ensuite, ajoutez @babel/preset-typescript à la liste des presets dans votre babel.config.js.

// babel.config.js
module.exports = {
presets: [
['@babel/preset-env', {targets: {node: 'current'}}],
+ '@babel/preset-typescript',
],
};

Toutefois, l'utilisation de TypeScript avec Babel présente quelques inconvénients. La prise en charge de TypeScript dans Babel étant purement une transpilation, Jest ne vérifiera pas le typage de vos tests lors de leur exécution. Si vous souhaitez cela, vous pouvez à la place utiliser ts-jest, ou simplement exécuter le compilateur TypeScript tsc séparément (ou dans le prolongement de votre processus de construction).

Vous pouvez également installer le module @types/jest pour la version de Jest que vous utilisez. Cela permettra de fournir un typage complet lors de l'écriture de vos tests avec TypeScript.

Pour les modules @types/* , il est recommandé d'essayer de faire correspondre la version du module associé. Par exemple, si vous utilisez 26.4.0 de jest alors utilisez 26.4.x de @types/jest est idéal. En général, essayez de faire correspondre la version majeure (26) et mineure (4) aussi fidèlement que possible.

yarn add --dev @types/jest