Шутка для победы, когда дело касается автоматизации тестирования

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

Один из моих любимых инструментов для автоматизации тестов при работе с кодовой базой JavaScript / TypeScript - Jest, поскольку он позволяет мне легко создавать тесты и перебирать их во время разработки. Его простота делает его очень хорошим инструментом для разработки с использованием TDD.

В этой статье я сделаю краткое введение в Jest, объясню основные причины, по которым Jest является отличным инструментом тестирования, и рассмотрю несколько примеров.

Начнем с того, зачем его использовать.

Почему шутка

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

Ниже приведены мои любимые функции, которые заставили меня выбрать Jest в качестве инструмента автоматизации тестирования:

  • Просто и быстро, идеально для прототипирования.
  • Он позволяет создавать отчеты о покрытии кода, просто добавляя аргумент —-coverage в командную строку.
  • Отчет об ошибках во время выполнения теста богат и полезен.
  • Документация и сообщество вокруг инструмента действительно хороши.

Теперь, когда у нас есть веские причины выбрать Jest, давайте поработаем, установим Jest и рассмотрим несколько примеров.

📝 Если у вас еще не установлен Node.js, вы можете скачать его с официального сайта и установить.

Тестирование с Jest

Начнем с создания простого проекта и установки зависимости пакета Jest.

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

npm init

Терминал командной строки предложит несколько вопросов, и к концу у вас должен быть файл с именем package.json с содержимым, аналогичным следующему.

{
  "name": "Jest Testing",
  "version": "1.0.0",
  "description": "Let's create some tests with Jest",
  "main": "index.js",
  "scripts": {},
  "author": "Nuno Brites",
  "license": "MIT"
}

Когда проект готов, первое, что нам нужно сделать, это установить Jest, для этого просто выполните команду ниже.

npm install --save-dev jest

Теперь давайте создадим файл с именем stringConcat.js и добавим к его содержимому функцию, описанную ниже. В тестах будет использоваться функция stringConcat.

function stringConcat(str1, str2) {
  return str1 + str2;
}
module.exports = stringConcat;

Следующим шагом будет создание тестового файла. Создайте еще один файл с именем stringConcat.test.js и добавьте к его содержимому приведенный ниже код.

const stringConcat = require('./stringConcat');
test('concats "Hello " with "world!" into a single string', () => {
  expect(stringConcat("Hello ", "world!")).toBe("Hello world!");
});

Теперь, когда у нас есть первый тест, нам нужно создать способ его запуска. У нас есть два варианта: обновить элемент scripts внутри файла package.json или установить Jest на вашем компьютере и запустить его прямо из командной строки.

Давайте пройдемся по первому способу, обновим файл package.json и добавим в него следующее содержание.

{
  "scripts": {
    "test": "jest"
  }
}

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

npm run test

После выполнения команды вы увидите следующий вывод. Давайте подробнее рассмотрим, что Jest пишет на консоль.

После выполнения тестов Jest выводит на консоль сводку о выполнении и выделяет, что прошло хорошо, зеленым 🟢, а что привело к ошибке красным. В этом случае мы видим, что запуск теста был успешным и что набор тестов состоит из одного набора тестов и одного теста.

Теперь давайте обновим элемент scripts до следующего.

{
  "scripts": {
    "test": "jest"
    "test-with-coverage": "jest --coverage"
  }
}

Новая строка выполнит Jest и выведет на консоль отчет о покрытии кода. Давай запустим и посмотрим, что из этого получится.

npm run test-with-coverage

После выполнения указанной выше команды вы увидите следующий результат.

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

Сообщество Jest

У Jest есть сообщество людей, заинтересованных в этом инструменте и вносящих свой вклад в его развитие и улучшение. Он находится на GitHub и среди нескольких добавленных к нему плагинов для Visual Studio Code или некоторых расширений самого Jest.

Что-то, за чем обязательно стоит следить и смотреть на GitHub.

Заключение

После использования Jest в качестве инструмента тестирования стоит упомянуть несколько моментов:

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

Если у вас есть какие-либо предложения или предложения, не стесняйтесь оставлять комментарии ниже. Удачного кодирования!