Вопрос проверяет понимание методологии разработки через тестирование.
TDD (Test-Driven Development) - подход, когда тесты пишутся до кода. Цикл: Красный тест → Зеленый тест → Рефакторинг. Плюсы: качество кода, минусы: время.
Как работает TDD:
Красная фаза: Пишем падающий тест для новой функциональности
Зеленая фаза: Пишем минимальный код, чтобы тест прошел
Рефакторинг: Улучшаем код, сохраняя зеленый тест
Преимущества:
Лучшее покрытие тестами
Более продуманный дизайн
Меньше багов в production
Упрощает рефакторинг
Недостатки:
Требует больше времени на начальном этапе
Сложность тестирования UI
Требует дисциплины команды
Пример (Kotlin):
// 1. Пишем тест
@Test
fun `addition should return sum of two numbers`() {
assertEquals(5, Calculator().add(2, 3))
}
// 2. Реализуем минимальную функциональность
class Calculator {
fun add(a: Int, b: Int) = a + b
}Когда использовать:
Для сложной бизнес-логики
В долгосрочных проектах
Для критически важных компонентов