Как cделать тестирование кода более эффективным: принципы FIRST
Вспомним и разберем конкретные примеры тестирования компонентов React для каждого из принципов FIRST.
В последнее время я все больше уделяю внимание юнит тестированию, что связано с моим наставничеством на Hexlet и выравнивание пирамиды на работе. И немного решил освежить основы при написании юнит тестов:
Быстрота (Fast)
Тесты должны выполняться очень быстро. Время выполнения, включая настройку, сам тест и завершение, должно составлять миллисекунды, так как в проекте может быть тысячи тестов.
Изоляция (Isolated/Independent)
Каждый тест должен быть независим. Он должен следовать модели "подготовка, действие, проверка" (Arrange, Act, Assert) без зависимости от других тестов или внешнего окружения.
Повторяемость (Repeatable)
Тесты должны давать одинаковые результаты в любой среде и в любое время, независимо от внешних условий, таких как дата/время или случайные значения.4
Самодостаточность (Self-Validating)
Результаты теста должны быть ясны без внешних проверок — тест либо проходит, либо нет, без всякой необходимости в дополнительной интерпретации.
Тщательность (Thorough/Timely)
Тесты должны охватывать все возможные сценарии использования и граничные условия, не ограничиваясь простым стремлением к 100% покрытию кода. Важно тестировать различные объемы данных, безопасность, и корректную обработку исключений.
Реальные примеры тестирования в React с использованием принципов FIRST
Давайте разберем конкретные примеры тестирования компонентов React для каждого из принципов FIRST.
1. Быстрота (Fast)
Плохой пример:
Хороший пример:
2. Изоляция (Isolated/Independent)
Плохой пример:
Хороший пример:
3. Повторяемость (Repeatable)
Плохой пример:
Хороший пример:
4. Самодостаточность (Self-Validating)
Плохой пример:
Хороший пример:
5. Тщательность (Thorough/Timely)
Плохой пример:
Хороший пример: