Различия между 'it' и 'test' в Jest: мифы и реальность

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

it и test в Jest — это по сути два синонима, применяемых для определения тестовых случаев. test чаще используется для формулирования тестов в логическом стиле, в то время как it подходит для создания более естественного, поведенческого описания согласно подходу BDD (поведенческое тестирование).

JS
Скопировать код
test('корректно производит сумму целых чисел', () => {
  // Проверяем математику на прочность
  expect(1 + 1).toBe(2);
});

it('должен корректно суммировать целые числа', () => {
  // Математика подвергается проверке
  expect(1 + 1).toBe(2);
});

Выбор между it и test в значительной степени определяется предпочтениями вашей команды и их стилистическими наклонностями в написании тестов.

Кинга Идем в IT: пошаговый план для смены профессии

Осмысление алиасов

В зависимости от того, выбираете ли вы it или test, меняется интерпретация тестов в виде понятных сюжетов. it обычно используется в контексте BDD, при этом фокусируясь на ожидаемом поведении компонента.

JS
Скопировать код
// Стиль BDD используя `it`
it('осуществляет обработку API-запроса', () => {
  // Тестируем обработку запроса
});

// Прямолинейный стиль используя `test`
test('обрабатывает запрос к API', () => {
  // То же самое, но без акцента на поведение
});

Организация наборов тестов

describe позволяет группировать связанные тесты для облегчения навигации и поддержания структурированности кода.

JS
Скопировать код
describe('Набор функций для манипуляций с числами', () => {
  it('обрабатывает деление чисел без ошибок', () => {
    // Производим деление и проверяем его
  });

  test('правильно вычисляет остаток от деления', () => {
    // Работаем с остатком от деления
  });
});

Выбор между it и test в describe также основывается на личных предпочтениях в формулировании тестов.

Избегание проблем с исключением тестов

Если нужно временно исключить некоторые тесты из запуска или сосредоточиться на одном, Jest предлагает использовать xit() и fit(). Эти методы становятся непосредственной помощью, если вы столкнулись с проблемами в определенных тестах.

JS
Скопировать код
// Пропускаем тест, вызывающий ошибку
xit('в конечном итоге должен выполняться промис', () => {
  // Вернусь к этому позже
});

// Фокусирование на конкретном тесте
fit('промисы иногда демонстрируют ошибки', () => {
  // Очередное сломанное обещание.
});

Альтернативные способы для тех, кто предпочитает test, — это test.skip и test.only.

Визуализация

Использование it и test в Jest предлагает две различных перспективы оформления тестов.

Markdown
Скопировать код
| Функция | Описание |
| ------- | -------- |
| `it`    | Соответствует подходу BDD, благоприятен для сценариев |
| `test`  | Универсальный стиль, подходит для любых случаев |

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

Соблюдение единого стиля тестирования в больших командах

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

Внедрение правил для линтеров помогает обеспечить единство стиля кода и повышает его читаемость, что весьма облегчает процесс проведения код-ревью.

Полезные материалы

  1. Globals · Jest — официальная документация о применении it и test в Jest.
  2. Обсуждение на Stack Overflow — дискуссии и мнения сообщества о выборе между it и test.
  3. Ключевые особенности Jest – Унит-тестирование на JavaScript – YouTube — доступное видео с описанием использования it() и test() в Jest.
  4. Шпаргалка по Jest – GitHub — справочник по ключевым командам Jest с примерами использования it и test.
  5. Пишите тесты. Но не слишком много. В основном, интеграционные — статья с советами по выбору оптимальной стратегии тестирования.
  6. egghead.io — хотя данный ресурс и не связан непосредственно с Jest, он предлагает множество полезных уроков по актуальным темам в области программирования.
Свежие материалы