← Назад к вопросам

Какой процент кода покрыт Unit тестами?

1.8 Middle🔥 141 комментариев
#SOLID и паттерны проектирования#Тестирование

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Процент покрытия кода Unit тестами

Стандарты индустрии

Нет одного «магического» числа, но есть практические ориентиры:

  • 70-80% — минимум для production-ready проекта
  • 80-90% — хороший стандарт для зрелых команд
  • 90%+ — критичные системы, финансовый софт, медицина
  • 100% — нереально и не всегда полезно

Что на самом деле важно

Не только количество, но качество:

// Плохой тест (низкое качество)
@Test
public void testGetUser() {
    User user = userRepository.findById(1L);
    assertNotNull(user);
}

// Хороший тест (проверяет поведение)
@Test
public void shouldReturnUserWithCorrectEmail() {
    User user = userRepository.findById(1L);
    assertThat(user.getEmail()).isEqualTo("john@example.com");
}

Стратегия покрытия по слоям

Domain (бизнес-логика): 90-100%

Это самый критичный код, проверяем все граничные случаи.

Application (use cases): 80-90%

Проверяем правильный вызов сервисов и error handling.

Infrastructure (БД, HTTP): 60-70%

Фокусируемся на исключительных случаях, часто оставляем интеграционные тесты.

Presentation (API): 70-80%

Проверяем status codes, headers, error responses.

Что НЕ нужно тестировать

  • Getters/Setters без логики
  • Boilerplate код
  • Конфигурационные классы
  • Библиотечный код фреймворков

Инструменты

JaCoCo для Java:

plugins {
    id 'jacoco'
}

jacoco {
    finalizedBy jacocoTestReport
}

Реальная практика

85% покрытия — идеальная точка баланса. Достаточно для обнаружения большинства багов, не требует чрезмерных трудозатрат. Фокусируемся на качестве, а не количестве.