Было очень хорошее интервью с Кентом Беком по Радиостанция разработки программного обеспечения , где он объяснил свою философию о том, когда писать тесты, когда делать TDD и т. Д.
Он сказал, что когда он пишет исследовательский код, код, который не будет передан, или код, который не будет длиться долго, решение проблемы, он не будет писать тесты. В остальное время он пишет тесты.
Чтобы ответить на ваш вопрос, задайте себе вопрос. Поможет ли вам рефакторинг, расширение, поддержка этой среды, если у вас есть тесты? Если да, напишите тесты.
1) Обычно, хорошая практика рекомендует писать тесты перед рефакторингом (чтобы убедиться, что поведение не меняется) или перед созданием нового кода (стандартное TDD).
2) Да, это может стать рекурсивным, но у вас есть только столько времени в течение дня, поэтому вам нужно подумать о том, какие усилия вы тратите на дополнительную ценность, которую вы вносите в проект.
Написание модульных тестов также поможет вам лучше понять существующий код. Лично я бы писал тесты.