Перейти к основному содержимому

TDD

Test Driven Development — это методология разработки ПО, при которой разработчики пишут тесты до написания самого кода.

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

Процесс разработки обычно состоит из трёх основных шагов:

  1. Написание тестов, которые изначально не проходят.
  2. Написание минимального рабочего кода, необходимого для прохождения тестов.
  3. Рефакторинг кода для улучшения его качества.

Правила написания тестов

  1. Каждый тест должен проверять только одну конкретную функциональность: это облегчает изоляцию ошибок.
  2. Тесты должны покрывать как успешные, так и неуспешные случаи; т.е. должно проверяться поведение как для корректных, так и некорректных входных данных.
  3. Тесты должны быть независимыми друг от друга, чтобы один тест не влиял на другой.
  4. Тесты должны быть изолированными: они не должны зависеть от внешних систем или состояния окружения.
  5. Тесты не должны провоцировать реальные вызовы API, вместо этого для зависимостей используются заглушки (stubs) и моки (mocks).

Структура

Тесты должны следовать структуре "AAA":

  1. Arrange: подготовка окружения, установка начальных условий
  2. Act: выполнение тестируемого действия
  3. Assert: проверка ожидаемого результата

Методичка написания функции

  1. Уточнить ТЗ нечёткий ТЗ — результат ХЗ.
  2. Написать тесты для функции.
  3. Проверить тесты на охват всех случаев.
  4. Словами описать принцип, при помощи которого задача будет решаться.
  5. Приступить к написанию функции.