Skip to content

beforeEach, afterEach, beforeAll, afterAll

Vitest est un framework de tests JavaScript qui permet d'écrire et d'exécuter des tests pour les applications JavaScript. Les fonctions beforeEach, afterEach, beforeAll, et afterAll sont utilisées pour définir des actions qui doivent se produire avant et après chaque test ou l'ensemble des tests dans un bloc describe. Voici comment elles fonctionnent et des exemples de leur utilisation :

  1. beforeAll : Cette fonction s'exécute une fois avant tous les tests dans un bloc describe. Elle est utile pour initialiser des ressources qui seront utilisées par plusieurs tests.

    javascript
    beforeAll(() => {
      // Initialisation qui se produit une fois avant tous les tests
      console.log('Initialisation avant tous les tests');
    });
    beforeAll(() => {
      // Initialisation qui se produit une fois avant tous les tests
      console.log('Initialisation avant tous les tests');
    });
  2. afterAll : Elle s'exécute une fois après que tous les tests dans un bloc describe sont terminés. C'est l'endroit idéal pour nettoyer ou libérer des ressources utilisées pendant les tests.

    javascript
    afterAll(() => {
      // Nettoyage qui se produit une fois après tous les tests
      console.log('Nettoyage après tous les tests');
    });
    afterAll(() => {
      // Nettoyage qui se produit une fois après tous les tests
      console.log('Nettoyage après tous les tests');
    });
  3. beforeEach : Cette fonction s'exécute avant chaque test individuel dans un bloc describe. Elle est souvent utilisée pour réinitialiser certaines conditions avant chaque test.

    javascript
    beforeEach(() => {
      // Actions à effectuer avant chaque test
      console.log('Avant chaque test');
    });
    beforeEach(() => {
      // Actions à effectuer avant chaque test
      console.log('Avant chaque test');
    });
  4. afterEach : Elle s'exécute après chaque test individuel dans un bloc describe. C'est un bon endroit pour effectuer un nettoyage ou une réinitialisation après chaque test.

    javascript
    afterEach(() => {
      // Actions à effectuer après chaque test
      console.log('Après chaque test');
    });
    afterEach(() => {
      // Actions à effectuer après chaque test
      console.log('Après chaque test');
    });

Voici un exemple d'utilisation de ces fonctions dans un contexte de tests :

javascript
describe('Tests de mon application', () => {
  beforeAll(() => {
    console.log('Initialisation avant tous les tests');
    // Initialisation de la base de données, par exemple
  });

  afterAll(() => {
    console.log('Nettoyage après tous les tests');
    // Nettoyage de la base de données, par exemple
  });

  beforeEach(() => {
    console.log('Avant chaque test');
    // Réinitialiser les données pour chaque test
  });

  afterEach(() => {
    console.log('Après chaque test');
    // Actions de nettoyage après chaque test
  });

  test('Mon premier test', () => {
    // Code du premier test
  });

  test('Mon deuxième test', () => {
    // Code du deuxième test
  });
});
describe('Tests de mon application', () => {
  beforeAll(() => {
    console.log('Initialisation avant tous les tests');
    // Initialisation de la base de données, par exemple
  });

  afterAll(() => {
    console.log('Nettoyage après tous les tests');
    // Nettoyage de la base de données, par exemple
  });

  beforeEach(() => {
    console.log('Avant chaque test');
    // Réinitialiser les données pour chaque test
  });

  afterEach(() => {
    console.log('Après chaque test');
    // Actions de nettoyage après chaque test
  });

  test('Mon premier test', () => {
    // Code du premier test
  });

  test('Mon deuxième test', () => {
    // Code du deuxième test
  });
});

Dans cet exemple, beforeAll et afterAll ne sont exécutés qu'une seule fois, tandis que beforeEach et afterEach sont exécutés avant et après chaque test, respectivement. Cela permet de s'assurer que chaque test est exécuté dans un environnement propre et prévisible.