«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Добавление Jest в Explaner.js

Добавление Jest в Explaner.js

Опубликовано 9 ноября 2024 г.
Просматривать:679

На этой неделе мы должны были добавить тест в наш инструмент командной строки. Пока что это самое неприятное.

Почему я выбрал Джест

Я большой сторонник TDD (разработка через тестирование). Почти каждый фрагмент кода должен быть протестирован. Во время кооператива больше половины времени я тратил на написание тестов для своего пиара. Я считаю, что этот опыт действительно помог мне понять необходимость тестирования. Я был удивлен, увидев, насколько схожи среды тестирования в JS и Ruby. Я использовал Jest, который очень похож на RSpec, который я использовал во время совместной игры. Чтобы имитировать http-запрос, я использовал Nock, похожий на что-то под названием VCR.

Проблемы, с которыми я столкнулся (их много)

Основная проблема, с которой я столкнулся, заключалась в том, что я использовал ESM вместо CommonJS. Что значительно усложнило мне жизнь. Первой проблемой было то, что jest.mock не работал. После некоторых исследований я понял, что в ESM другой способ издеваться. К сожалению, даже следуя документации, я не смог заставить его работать. Итак, мне пришлось сделать jest.spyOn. Вторая проблема, с которой я столкнулся, заключалась в том, что execa запускает в child_process файл index.test.js, хотя его запуск не влияет на отчет о покрытии. Поэтому мне пришлось использовать jest.spyOn, чтобы переписать тест. Мне также пришлось провести рефакторинг index.js, чтобы он не принимал флаги, которые я передаю в шутку. Другая меньшая проблема, с которой я столкнулся, заключалась в использовании узла --experimental-vm-modules --no-warnings node_modules/jest/bin/jest.js -c jest.config.mjs вместо jest -c jest.config.mjs, потому что я был с помощью ЕСМ. Мне также пришлось использовать макет-fs для репликации файловой системы для тестирования FilepathResolver.test.js, потому что простой jest.spyOn не проверил ее достаточно тщательно. Я был удивлен, сколько препятствий возникло из-за простого использования ESM, и это просто отражает то, какой беспорядок представляет собой JS.

После множества пробных ошибок я получил довольно хорошее освещение.

Adding Jest To Explainer.js

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/aamfahim/adding-jest-to-explainerjs-50f?1. Если обнаружено какое-либо нарушение прав, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3