Очень важно протестировать наш код. Мы слышали это миллион раз, и все мы знаем, насколько это важно для здорового роста приложения. Сложность возникает, когда вы только начинаете и не знаете, какие типы наборов тестов подходят для проектов, над которыми вы работаете. Mocha и Jest - два из этих наборов, и я думаю, что обзор может помочь вам при выборе одного из них для проекта.

Заметка о жасмин

Этот блог в основном будет рассказывать о Jest и Mocha. Однако это не означает, что я не проверял третий, очень популярный набор тестов под названием Jasmine. Проведя небольшое исследование, я обнаружил, что, поскольку Jasmine лучше всего работает с проектами angular и поскольку я в настоящее время не пишу код с angular, я решил исключить его из этого обзора. Это не значит, что вам не следует проверять это! Это старый язык тестирования, который реализован во множестве приложений!

Теперь, когда адрес слона в комнате был адресован, давайте посмотрим на Mocha!

Мокко

Mocha - это тестовая среда Javascript, которая запускается из браузера и Node.js. Вы можете ознакомиться с официальной документацией здесь. Сам по себе Mocha - это тестовый раннер. Это означает, что функциональность Mocha из коробки ограничена. Однако, как и все, что использует node, его можно расширить с помощью пакетов npm и других зависимостей. Это хорошо, потому что вам нужно будет добавить в мокко только то, что вам нужно, но за счет знания того, какие типы пакетов npm нужно устанавливать. Это не значит, что начать тестирование кода непросто! Фактически, после того, как вы импортировали функцию assert из Node, вы можете приступить к написанию тестов для своего кода! Также ознакомьтесь с моим предыдущим блогом о написании асинхронных тестов в Mocha!

В качестве подсказки, очень полезный пакет, который хорошо работает с Mocha, - это nyc. Nyc - это инструмент покрытия кода. Инструменты покрытия кода отлично подходят для того, чтобы увидеть, какие функции не были учтены в ваших тестах. Вот как вы добавляете его в файл package.json.

"scripts": {           old --> new        "scripts": {
"test": "mocha"                            "test": "nyc mocha"
},                                        },

Шутка

Jest - еще один фреймворк для тестирования Javascript. На этот раз разработан Facebook. Вы можете ознакомиться с документацией здесь. В отличие от Mocha, Jest предлагает гораздо больше из коробки. Это не только средство для запуска тестов, но и бесшовная интеграция с такими фреймворками, как React и Vue, без необходимости установки дополнительных зависимостей. На самом деле, если вы создаете проект React, там вообще почти нет никаких зависимостей! Это означает, что вы получаете гигантский набор инструментов со всеми вашими инструментами, уже находящимися внутри него, вместо того, чтобы искать различные инструменты для использования ala Mocha.

Помните инструмент покрытия кода nyc, о котором я упоминал ранее? Вам даже не нужно беспокоиться о таких инструментах, как этот. В Jest уже есть встроенный инструмент покрытия кода! Доступ к нему можно получить, изменив тестовые скрипты в вашем package.json с

"scripts": {           old --> new        "scripts": {
"test": "jest"                            "test": "jest --coverage"
},                                        },

Что лучше, если вы только начинаете?

При выборе между Mocha и Jest вам нужно задать себе множество вопросов. Они оба являются полностью полезными вариантами, но вот обзор того, что мы рассмотрели, и некоторые другие моменты, которые следует учитывать.

В целом, я бы порекомендовал начать с Mocha, особенно если вы начинающий разработчик, использующий только чистый Javascript. Он прост в установке и даст вам хорошее представление о типах инструментов, которые вы предпочитаете использовать при разработке в качестве тестировщика. Если вы недавно перешли к использованию большего количества фреймворков Javascript, то, вероятно, Jest - лучший вариант!