Тест, написанный после реализации, почти всегда проверяет то, что код уже делает — не то, что он должен делать. Баг в логике проскальзывает мимо, потому что тест написан по мотивам той же логики.
Skill test-driven-development меняет порядок: сначала падающий тест на нужное поведение, потом минимальный код, который его зеленит.
def test_discount_applies_only_above_threshold():
assert calc_discount(cart_total=500) == 0
assert calc_discount(cart_total=1500) == 150
Тест падает первым — функции calc_discount ещё нет. Код пишется под конкретно эти два случая, а не абстрактную “скидочную систему вообще”. В git-логе видно: коммит с тестом идёт раньше коммита с кодом.
Попробуй TDD-skill на следующей задаче — засеки, поймает ли он баг раньше, чем ты сам увидишь его в проде.
#claude #ai #tdd
