В настоящее время разработчики и специалисты по подбору персонала говорят о разработке через тестирование в повсюду ; в описаниях должностей, конференциях, собеседованиях и т. Д. но я думаю, что главное понимание того, как и зачем писать тесты, заключается в сопровождении проекта и его долгосрочном развитии.

Долгосрочная разработка с командой (каждый разработчик пишет разные части кода, которые в конце связывают разные ингредиенты и взаимодействуют друг с другом) и уверенность в развертывании проекта в производственной среде без написания и запуска кода - это кошмар!

Так или иначе, мы должны научиться писать и использовать тесты. и эта статья - простой и быстрый способ научиться писать тесты, которые включают основы написания тестов и TDD, а далее мы узнаем, как писать тесты с использованием Jest и Enzyme для приложений React. (вы также можете использовать Jest для любого другого приложения на основе JavaSciprt, например приложений NodeJs / Angular.)

Различные типы тестов

У нас есть разные типы тестов при разработке программного обеспечения для тестирования различных частей и функциональности нашего приложения / программного обеспечения:

  • Модульные тесты: для тестирования функциональности отдельной функции или класса. Модульные тесты должны охватывать все небольшие чистые функции приложения.
  • Интеграционные тесты: для проверки взаимосвязей и связи между двумя частями нашего приложения (например: правильно ли MongoDB работает с Express?). Интеграционные тесты - это перекрестные коммуникации между различными блоками кода.
  • Тесты автоматизации: для проверки того, работает ли наше приложение в браузере должным образом и ведет себя? Тесты автоматизации - это тесты пользовательского интерфейса, которые всегда выполняются в браузере или в среде, аналогичной браузеру. Он включает в себя тестирование таких вещей, как нажатие, ввод текста и прокрутка.

Инструменты тестирования

Существуют различные инструменты и библиотеки для написания тестов на JavaScript для разных целей. некоторые из этих библиотек используются для определенной части теста, а некоторые из них поддерживают большее количество частей.

1- Фреймворки

Включает Жасмин, Шутка, Мокко и Кипарис.

Фреймворки являются всеобъемлющими и поддерживают различные задачи, которые можно написать и что нужно сделать. например, у большинства из них есть собственное утверждение, средство запуска тестов и так далее.

2- Библиотеки утверждений

Включает Жасмин, Jest и Чай.

Эти библиотеки помогают нам уменьшить размер кода для написания утверждений. Используя эти библиотеки, нам больше не нужно писать сложные операторы if / else if для проверки того, равно / больше / меньше / &… соответствует ли данное значение нашему ожидаемому значению. Вместо этого мы можем просто проверить их, используя одну строку кода, как показано ниже:

3- Шпионы, заглушки и макеты

Включает Жасмин, Jest и Sinon.

Моки - это поддельные методы с заранее запрограммированным поведением. Мы используем mocks для проверки того, что указанный метод вызывается с какими параметрами и тому подобное.

Заглушки, с другой стороны, предназначены для немного иной задачи; используя заглушки, мы заменяем определенный метод компонента или класса нашим поддельным методом, чтобы имитировать его поведение для тестирования сценария.

Шпионы обертывают реальный объект и смотрят, когда, как время и с какими параметрами вызывается.

4- Тестирование снимков

Насколько я знаю, существует только одна библиотека, которая поддерживает тестирование снимков; Шутка.

Как говорится в документации Jest, тесты моментальных снимков - очень полезный инструмент, когда вы хотите убедиться, что ваш пользовательский интерфейс не изменится неожиданно.

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

Мы должны использовать их только для структур, изменение которых может вызвать неожиданные проблемы.

5- Тестовые бегуны

Включает в себя жасмин, Jest, мокко и карма (карма предназначена для запуск тестов в браузере).

Каждому письменному тесту нужен бегун. в некоторых тестовых библиотеках есть собственные бегуны для запуска письменных тестов (например, Jasmine и Jest), а некоторым из них требуется внешняя библиотека для запуска тестов.

6- Покрытие кода

Включает Стамбул и Jest (также используется Стамбул!)

Важно определить, насколько процент нашего кода проверяется и насколько надежен. для получения обширной информации по этому поводу мы должны использовать инструменты покрытия тестового кода, такие как Istanbul.

Как вы, наверное, заметили, Jest поддерживает все эти части, что избавляет вас от необходимости использовать другие библиотеки, особенно если вы хотите писать тесты для приложения, основанного на реакции. Итак, я собираюсь показать вам, как мы можем писать тесты с помощью Jest.

конец части 1.



🇬🇧💼 Между прочим, я ищу работу в Великобритании с оплатой за визы. Если вы ищете кого-то вроде меня для найма, отправьте мне сообщение.