Может ли кто-нибудь порекомендовать несколько лучших практик, как решить проблему, начиная с UnitTest в большой существующей CodeBase? Проблемы, с которыми я сейчас сталкиваюсь, включают в себя:
- ОГРОМНАЯ кодовая база
- ZERO существующие тесты Unit
- Высокая связь между классами
- Комплексный ОМ (не так много, я могу здесь - это сложный бизнес-домен)
- Отсутствие опыта написания UnitTests/TDD
- Зависимость базы данных
- Зависимости внешних источников (веб-службы, службы WCF, NetBIOS и т.д.)
Очевидно, я понимаю, что я должен начать с рефакторинга кода, чтобы сделать его менее связанным и более проверяемым. Однако делать такой рефакторинг рискованно без UnitTests (курица и яйцо, кто-нибудь?).
С другой стороны, вы бы посоветовали начать тестирование рефакторинга и записи в классах Domain или на уровнях классов (протоколирование, утилиты и т.д.)?