Skip to main content

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

Тестирование features позволяет однозначно удостовериться в правильности реализации бизнес требований.

Тестирование логики

В features обязательно необходимо тестировать слой логики.

Преимущества отдельного тестирования логики feature:

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

Требования к тестам логики

Тесты логики features подчиняются единым требованиям:

Astral.Frontend Unit Testing Guide

Работа с Repositories и faker

Тестирование SUT, использующих Repositories

Формирование тест-кейсов

Тестирование бизнес-логики


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

Если для слоя логики были реализованы тесты, то тестирование слоя ui можно либо опустить, либо проверять только:

  • Условный рендеринг
  • Взаимодействие с браузерным окружением (ожидаемая обработка кликов, работа с ref, window и т.п.)

От тестирования ui в features можно отказаться по причинам:

  • Большая часть ключевых кейсов будет уже проверена на слое логики. Стоит избегать дублирования тестов
  • Тесты для ui - это интеграционное тестирование. Интеграционное тестирование сложнее в реализации
  • Тесты для ui медленные потому, что необходимо эмулировать браузерное окружения
  • Для удобных и устойчивых к рефакторингу тестов ui необходимо применять DI для компонентов, это усложнит взаимодействие с features и их инициализацию

Тестирование форм

Тестирование форм