Maison  >  Article  >  interface Web  >  Testez votre application JavaScript avec Jest

Testez votre application JavaScript avec Jest

WBOY
WBOYoriginal
2024-08-13 06:37:28738parcourir

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 à passer 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 cas 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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn