fata1ex
NotDeadAlready
Мне просто надо делать всякие утилитки для личных нужд.
NotDeadAlready
я хочу понять логику применения ТДД
Интересный подход у вас 
Возможно. Однако некоторые мои утилитки достаточно объёмны, чтобы испытывать нужду в ТДД.
При тестировании определяющую роль играет набор требований, по которому строятся непосредственно тесты. Банально, да, но из требований я заметил только наличие геттера и контроль выхода за пределы списка.
Главное требование - чтобы результаты расчётов совпадали с теми, что были получены на бумаге. Хотя бы на парочке наборов входных данных. А зачем проверять наличие геттера, если мы так и так будем его вызывать? Контроль выхода за пределы списка тоже не так уж важен для меня, потому что данные будут подготавливаться другой программой, а не руками. Соответственно, та программа тоже будет оттестирована, чтобы быть уверенным, что она выдаёт корректный набор входных данных.
Вы хотите увидеть однострочные тесты к стандартному типу? assertTrue(hasattr(obj, ‘__getitem__’)), assertRaises(…)?
Я хочу увидеть весь процесс создания нужного мне класса по шагам, начиная с написания означенных Вами тестов, пусть и однострочных. Для понимания методики это не имеет значения.
В общем, по-моему, опробовать новый подход можно только самостоятельно его испытав на, например, “утилитке для личной нужды”.
Именно это я и пытался сделать. Вы не поверите, но этот примитивный класс - фундаментальных в моей проге. От него будет отпочкован по крайней мере ещё один, уже гораздо более интересный.
Составляете требования, пишете тесты, пишете код, прогоняете тесты, и по кругу.
Требования я составил. Код какой-никакой, но написал. Вот видите, у меня не получилось применить ТДД. Плоховато я представляю весь процесс. Допустим, я напишу тесты (пусть и постфактум). Как потом их запускать? Делать в файле проверку __init__ == __main__? Тогда можно будет в любой момент проверить корректность класса, просто запустив соответствующий файл .py. А как потом проверять всю прогу? Написать примитивный скрипт, который запускает все .py в каталоге, направляет их вывод в файл, а потом ищет в файле все строчки, в которых есть слово FAILED?
Может, кто-нибудь другой вам подскажет лучше.
Мне не подсказки нужны, а полное решение. Я так понимаю лучше - на конкретных примерах. Поэтому и выбрал такой примитивный пример, что дальше некуда. Иначе получилась бы полноценная программа, а Вы вряд ли будете писать за меня, да ещё оформлять тестами, и всё это за бесплатно?