jangle писал(а):Попробовал такой подход, очень понравилось. Вкратце сначала пишется тест, а затем уже код, который реализует этот тест. Движемся маленькими шажками. Единица итерации - класс, как можно меньше размером и проще. Сложный класс дробится на более простые. Тесты тоже получаются простыми.
Разработка похоже на складывание дома из кирпичиков. Только каждый кирпичик тщательно проверен и обладает стандартным интерфейсом. Т.е. идем от частного к более общему, снизу вверх. Большой плюс такого подхода, что после тебя остается не тонны говнокода, а структурированная объектная модель с готовым тестовым покрытием. А если надо что-то выкинуть и заменить, нет проблем, меняем один кирпич на другой и все! Я теперь все новые проекты буду делать через TDD
Все смешалось в доме Облонских. TDD не имеет прямого отношения ни к классам, ни к методу "снизу вверх", ни тем более не избавляет от говнокода. Снизу-вверх - это плохо даже с TDD. Сверху-вниз - почти всегда лучше, а уж вместе с TDD вообще прекрасно. Эти две технологии не только не конфликтуют, но прекрасно друг в друга интегрируются.
У меня есть сильное подозрение, что Вы не различаете понятия разработки через тестирование и юнит-тестирования.
Я кейс в виде текста пишу. С описанием того, какие данные подаются на вход, а какие должны быть на выходе. Этот текст является ТЗ для этой задачи.
Это тем более не TDD. И даже не юнит-тестирование. Это просто спецификация. Если она проверяется автоматически, то получается контрактное программирование. Но я сомневаюсь, что Вы подразумевали его, судя по "ТЗ в виде текста".