IMO одна из основных характеристик хорошего TDD: тестирование вашего класса (или фактически модуля) изолированно.
Когда вы это сделаете, вы сможете фактически протестировать отдельное поведение в каждом тесте - только один тест подойдет для одной вашей проблемы.
Для этого вы сначала должны убедиться, что в вашем классе нет статических ссылок (включая конструкторы AKA new
ключевое слово).
Теоретически легко не использовать какую-либо структуру внедрения зависимостей и тестировать свои классы в полной изоляции, для этого вам нужно внедрить все зависимости в конструктор и создать классы Factories, которые будут вызывать ключевое слово new
.
Я обнаружил, что эту теоретическую МО слишком сложно реализовать на практике.
Я упустил что-то важное в процессе?
РЕДАКТИРОВАТЬ: я действительно думаю, что мы все должны стремиться к одному провалу за одно изменение кода. он никогда не будет идеальным, но он приблизит ваш код к этому, люди забывают, что тестовый код также является поддерживаемым кодом, спецификацией проверенных изменений кода.
Если вы не нацеливаетесь туда, вы в конечном итоге удалите тесты, что является плохим решением.