"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Testez votre application JavaScript avec Jest

Testez votre application JavaScript avec Jest

Publié le 2024-09-01
Parcourir:705

Test Your JavaScript App With Jest

Les tests sont une partie cruciale du développement logiciel qui garantit que votre application se comporte comme prévu. L'un des frameworks de test les plus populaires de l'écosystème JavaScript est Jest. Développé par Facebook, Jest est connu pour sa simplicité et sa facilité d'utilisation, ce qui en fait un excellent choix pour les développeurs débutants et expérimentés.

Premiers pas avec Jest

Avant de plonger dans les exemples, configurons Jest dans votre projet. Si ce n'est pas déjà fait, vous pouvez l'installer en utilisant npm :

npm install --save-dev jest

Ensuite, ajoutez un script de test à votre package.json :

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

Vous êtes maintenant prêt à écrire quelques tests !
Créons une fonction simple à tester. Créez un fichier nommé math.js :

// math.js
function add(a, b) {
  return a   b;
}
module.exports = add;

Maintenant, écrivons un test pour cette fonction. Créez un fichier nommé math.test.js :

// math.test.js
const add = require('./math');

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

Dans ce test, nous utilisons la fonction test pour définir un scénario de test. La fonction expect est utilisée pour affirmer que le résultat de add(1, 2) est égal à 3.

Exécution des tests

Vous pouvez exécuter vos tests en exécutant la commande suivante dans votre terminal :

npm test

Vous devriez voir un résultat indiquant que votre test a réussi.

Test du code asynchrone

Jest prend également en charge le test du code asynchrone. Modifions notre fichier math.js pour inclure une fonction asynchrone :

// math.js
function fetchData() {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve('peanut butter');
    }, 1000);
  });
}

module.exports = { add, fetchData };

Maintenant, écrivons un test pour fetchData :

// math.test.js
const { add, fetchData } = require('./math');

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

test('fetches data', async () => {
  const data = await fetchData();
  expect(data).toBe('peanut butter');
});

Dans ce test, nous marquons la fonction de test comme asynchrone et utilisons wait pour attendre que la promesse soit résolue.

Fonctions moqueuses

Jest offre de puissantes capacités de moquerie. Disons que vous disposez d'une fonction qui effectue un appel API. Vous pouvez vous moquer de cette fonction pour contrôler son comportement lors des tests.
Voici un exemple :

// api.js
const axios = require('axios');

async function getUser() {
  const response = await axios.get('https://api.example.com/user');
  return response.data;
}

module.exports = getUser;

Vous pouvez vous moquer d'axios dans votre test :

// api.test.js
const axios = require('axios');
const getUser = require('./api');

jest.mock('axios');

test('fetches user data', async () => {
  const user = { name: 'John Doe' };
  axios.get.mockResolvedValue({ data: user });

  const result = await getUser();
  expect(result).toEqual(user);
});

Dans ce test, nous nous moquons de la méthode axios.get pour renvoyer une réponse prédéfinie, nous permettant de tester getUser sans effectuer d'appel API réel.

Jest est un framework de test puissant qui facilite l'écriture et l'exécution de tests pour vos applications JavaScript. Avec sa syntaxe simple, sa prise en charge du code asynchrone et ses capacités de simulation intégrées, Jest peut vous aider à garantir que votre code est fiable et maintenable. Commencez dès aujourd'hui à intégrer Jest dans vos projets et profitez des avantages des tests automatisés.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/jospin6/test-your-javascript-app-with-jest-314c?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3