✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Як приховати висновок console.log JavaScript у тестах Jest

10

Сьогодні я працював над кодовою базою, яка мала багато навмисних console.logвиводів у всіх середовищах, крім робочих, тому вони з’являлися у виводі тестів Jest. Було б утомливо видаляти їх один за іншим, тому я розробив цю просту установку, щоб придушити весь console.logвихід одночасно, коли Jest працює.

Налаштування Є

Цей трюк покладається на вроджену здатність Джеста висміювати будь-що. По суті, ми зробимо висміювання logметоду consoleоб’єкта та залишимо інші методи недоторканими.

Спершу нам потрібно сказати Jest виконати інсталяційний файл перед запуском тестів. Для цього ми відредагуємо jest.config.jsфайл, який зазвичай знаходиться в корені вашого проекту, додавши інші властивості конфігурації, і додамо такий рядок:

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

Ми можемо перевірити в документації Jest, що setupFilesAfterEnvробить:

Список шляхів до модулів, які запускають певний код для конфігурації або налаштування інфраструктури тестування перед виконанням кожного тестового файлу в наборі.

Тепер, коли ми запускаємо наші тести, вони спочатку виконають те jest.setup.js, що ми зараз створимо.

Знущання console.log

Створіть файл src/setup.jsтам або там, де ви вказали свій шлях на попередньому кроці. Потім ви додасте до нього це:

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

Це перекриває logметод і дозволяє іншим. Оскільки я все ще хотів мати можливість виводити щось у тестах, я зіставив debugі trace. Ви можете зіставляти інші, які вам можуть знадобитися, наприклад console.table, для відтворення елементів у таблиці, корисних для реєстрації об’єктів або масивів. Чесно кажучи, поки я не написав це, я ніколи не дивився на сторінку об’єкта консолі в MDN, і там є багато цікавих методів, таких як цей console.dir, який відображає інтерактивний список властивостей зазначеного об’єкта JavaScript .

Заключні слова

Тепер ваш console.logвихід пригнічується під час виконання тестів Jest. Якщо ви працюєте в команді, переконайтеся, що ви повідомили решту команди про цю зміну, задокументувавши її, оскільки хтось може отримати стрес, намагаючись console.logщось зробити, і не побачити це там, де воно повинно бути.

Джерело запису: startfunction.com

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі