Как это работает
▪️Пишем маленький тест, описывающий нужное поведение
▪️Запускаем его — тест падает, ведь кода еще нет
▪️Реализуем минимальный код, чтобы тест прошел
▪️Рефакторим код, при этом тесты должны оставаться зелеными
Пример для понимания
Допустим, нам нужна функция sum, которая складывает два числа.
🔴 Сначала пишем тест:
import 'package:flutter_test/flutter_test.dart';
void main() {
test('sum should return correct result', () {
expect(sum(2, 3), 5); // ожидаем 2 + 3 = 5
});
}
Он упадет, так как функции еще нет.
🟢Пишем минимальный код, чтобы тест прошел:
int sum(int a, int b) {
return a + b;
}
🔁 После того как тест прошел, рефакторим код
Плюсы
◽️Код становится надежнее и полностью покрыт тестами
◽️Рефакторить проще — тесты страхуют
◽️Требования становятся понятнее (каждый тест фиксирует ожидание)
Минусы
◽️Разработка стартует медленнее
◽️Нужно уметь писать хорошие тесты
◽️Сложнее применять к UI или к большим интеграциям
А как у вас с TDD?
