Contexte de Test
Inspiré par Playwright Fixtures, le contexte de test de Vitest vous permet de définir des utilitaires, des états et des fixtures qui peuvent être utilisés dans vos tests.
Utilisation
Le premier argument pour chaque callback de test est un contexte de test.
Contexte de Test Intégré
context.task
Un objet en lecture seule contenant des métadonnées sur le test.
context.expect
L’API expect
liée au test actuel :
Cette API est utile pour exécuter des tests de snapshot en parallèle car l’expect global ne peut pas les suivre :
context.skip
Ignore l’exécution des tests suivants et marque le test comme sauté :
Étendre le Contexte de Test
Vitest fournit deux façons différentes de vous aider à étendre le contexte de test.
test.extend
Comme Playwright, vous pouvez utiliser cette méthode pour définir votre propre API test
avec des fixtures personnalisées et la réutiliser n’importe où.
Par exemple, nous créons d’abord myTest
avec deux fixtures, todos
et archive
.
Ensuite, nous pouvons l’importer et l’utiliser.
Nous pouvons également ajouter plus de fixtures ou remplacer les fixtures existantes en étendant myTest
.
Initialisation des Fixtures
Le runner de Vitest initialisera intelligemment vos fixtures et les injectera dans le contexte de test en fonction de leur utilisation.
Fixture Automatique
Vitest prend également en charge la syntaxe de tuple pour les fixtures, vous permettant de passer des options pour chaque fixture. Par exemple, vous pouvez l’utiliser pour initialiser explicitement une fixture, même si elle n’est pas utilisée dans les tests.
TypeScript
Pour fournir des types de fixture pour tous vos contextes personnalisés, vous pouvez passer le type des fixtures comme générique.
beforeEach
et afterEach
Les contextes sont différents pour chaque test. Vous pouvez y accéder et les étendre dans les hooks beforeEach
et afterEach
.
TypeScript
Pour fournir des types de propriétés pour tous vos contextes personnalisés, vous pouvez agréger le type TestContext
en ajoutant
Si vous souhaitez fournir des types de propriétés uniquement pour des hooks spécifiques beforeEach
, afterEach
, it
et test
, vous pouvez passer le type comme générique.