Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Comment masquer la sortie console.log de JavaScript dans les tests Jest

11

Je travaillais aujourd’hui dans une base de code qui avait de nombreuses console.logsorties intentionnelles dans tous les environnements sauf la production, donc elles apparaissaient dans la sortie des tests Jest. Il aurait été fastidieux d’aller les supprimer un par un et j’ai donc conçu cette configuration simple pour supprimer toutes les console.logsorties à la fois pendant que Jest est en cours d’exécution.

Configuration Il y a

Cette astuce repose sur la capacité native de Jest à se moquer de n’importe quoi. En gros, nous allons nous moquer de la logméthode de l’ consoleobjet et laisser les autres méthodes intactes.

Nous devons d’abord dire à Jest d’exécuter un fichier de configuration avant que les tests ne soient exécutés. Pour ce faire, nous allons modifier le jest.config.jsfichier qui se trouve généralement à la racine de votre projet avec d’autres propriétés de configuration et ajouter la ligne suivante :

setupFilesAfterEnv: ['/src/jest.setup.js']

Nous pouvons vérifier dans la documentation de Jest ce que setupFilesAfterEnvfait le :

Une liste des chemins d’accès aux modules qui exécutent du code pour configurer ou mettre en place le framework de test avant l’exécution de chaque fichier de test de la suite.

Maintenant, lorsque nous exécuterons nos tests, ils exécuteront d’abord le jest.setup.jsque nous allons créer maintenant.

Console.log moqueur

Créez un fichier à src/setup.jsou partout où vous avez pointé votre chemin à l’étape précédente. Vous y ajouterez ensuite ceci :

global.console = { log: jest.fn(), debug: console.debug, trace: console.trace, }

Cela remplace la logméthode et autorise les autres. Comme je voulais toujours avoir la possibilité de sortir quelque chose dans les tests, j’ai mappé debuget trace. Vous pouvez en mapper d’autres dont vous pourriez avoir besoin, comme console.tablecela rend les éléments dans une table, utile pour enregistrer des objets ou des tableaux. Pour être honnête, jusqu’à ce que j’écrive ceci, je n’avais jamais regardé la page de l’objet console dans MDN et il existe de nombreuses méthodes intéressantes comme celle console.dirqui affiche une liste interactive des propriétés de l’ objet JavaScript spécifié .

Mots de clôture

Maintenant, votre console.logsortie est supprimée pendant l’exécution de vos tests Jest. Si vous travaillez en équipe, assurez-vous d’informer le reste de l’équipe de ce changement en le documentant, car quelqu’un pourrait être stressé en essayant console.logquelque chose et ne pas le voir où il devrait être.

Source d’enregistrement: startfunction.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More