web-dev-qa-db-fra.com

Comment configurer jsdom lorsque vous travaillez avec jest

J'essaie de migrer d'AVA vers Jest. Dans AVA, vous pouvez définir ava.setup, dans lequel vous définissez l'environnement jsdom. Par exemple, créer la structure DOM et effectuer les polyfills nécessaires (localStorage).

Comment puis-je accomplir cela dans Jest? Actuellement, j'utilise beforeEach dans chaque suite de tests, ce qui ne semble pas être la meilleure solution.

Merci d'avance!

13
Gal Ziv

Grande question.

Jest est livré avec jsdom et l'environnement déjà configuré (vous pouvez le remplacer avec testEnvironmentsetting ).

Si vous avez besoin de configurer plus d'aspects de l'environnement, vous pouvez utiliser le setupTestFrameworkScriptFilesetting pour pointer vers un fichier qui s'exécute avant l'exécution de tous vos tests.

Par exemple, si vous avez besoin de window.yourVar pour être disponible sur la fenêtre de tous vos tests, vous devez l'ajouter à votre package.json:

"jest": {
    "setupTestFrameworkScriptFile": "tests/setup.js"
}

Et dans tests/setup.js:

Object.defineProperty(window, 'yourVar', { value: 'yourValue });
22
Rick Hanlon II