Чтение этого вопроса помогло мне укрепить некоторые проблемы, которые я всегда испытывал при модульном тестировании, TDD и др.
С тех пор, как я пришел к подходу TDD к развитию, я знал, что это правильный путь. Чтение различных руководств помогло мне понять, как начать, но они всегда были очень упрощенными - не совсем то, что можно применить к активному проекту. Лучше всего мне удалось написать тесты вокруг небольших частей моего кода - таких, как библиотеки, которые используются основным приложением, но никак не интегрированы. Хотя это было полезно, оно равно примерно 5% от кодовой базы. Там очень мало о том, как перейти к следующему шагу, чтобы помочь мне получить некоторые тесты в основном приложении.
Комментарии, такие как Большинство кода без модульных тестов построены с жесткими зависимостями (т.е. новыми повсеместно) или статическими методами. "и" ... не редкость иметь высокий уровень связи между классами, трудно настраиваемые объекты внутри вашего класса [...] и т.д. "заставили меня понять, что следующим шагом является понимание того, как де-пара кода сделать его проверяемым.
Что я должен искать, чтобы помочь мне сделать это? Есть ли определенный набор шаблонов проектирования, которые мне нужно понять и начать реализовывать, что позволит упростить тестирование?