Comments 12
Одна проблема — новичка это описание скорее оттолкнет, чем привлечет использовать TDD…
Форматирование бы поправить. Тяжело читается. И ссылку на оригинал — http://blog.cleancoder.com/uncle-bob/2016/10/26/DijkstrasAlg.html
Какой-то совершенно дикий способ хранения графа. Видимо, желание автор продемонстрировать TDD здесь перевесило все остальное: получился какой-то медленный, неюзабельный алгоритм с кучей ограничений.
Проблема именно в том, что большая часть решений совершенно не вытекала из тестов. В том числе — и решений по способу хранения и представления. Т.е. автор продемонстрировал, как бы он пришел к какому-то решению, написал по дороге несколько каких-то тестов — но только тесты и решения зачастую выглядят как не связанные друг с другом вещи.
Я не мастер джавы, но уверен, что в последнем исходнике пропущена куча пробелов.
Подход к описанию тестовых случаев мне очень понравился. Он прекрасно накладывается на моё желание упрощать описание кейсов и максимально не повторяться. На этой неделе делал подобное, но там алгоритм работал со строками (разбирал адрес), и преобразование не потребовалось: грузи файл или массив, да тести в цикле. А сегодня я понял вдруг, что так же можно с любой структурой поступить!
для неповторений тестов есть DataProvider в nginx или Parameters в Junit
Спасибо за подсказку. Посмотрел — да, это именно то, чего я хочу, но в DUnit параметризованные тесты поддерживаются только с версии Delphi 2010.
Чтобы перенести приложение на свежую версию — нужны тесты и замена старых сторонних компонентов (их немного, но свежих версий для важной части из них нет). Тестов до меня не было от слова совсем. В приложении более сотни модулей, пронизанных клубком взаимозависимостей, сиречь нетестируемых.
Это песня, нет, это поэма!!! Сплошной праздник года на два, с учётом разработки нового функционала. И я эту песню пою и танцую. Реальное наслаждение!
опечатка: вместо "nginx" читать "TestNG"
Если TDD когда-нибудь победит, став доминирующей парадигмой, то на базе этой статьи, я уверен, возникнет предание о том, как великий Дейкстра разработал свой алгоритм. Он начал, как водится, с тривиальных тестов для вырожденных случаев, но в результате, чтобы пройти все тесты, ему пришлось придумать свой знаменитый алгоритм. Только историки интернета, тщательно изучившие архивы, будут знать, что оригинальным автором был Мартин.
Алгоритм Дейкстры и разработка через тестирование