С учетом модульного теста для старого, трудно читаемого унаследованного кода C #, как лучше всего:
- найти зависимости (визуализировать их или вывести список для одного метода)
- проверить после рефакторинга, что все зависимости сломаны, что модульный тест действительно изолирован. Нет скрытого вызова DateTime.Now, нет доступа к базе данных / файлу / службе, нет вызовов для чего-либо, что не является заглушкой или фиктивным (кроме некоторых надежных вещей .NET Framework и т. Д.)
Скорее всего, вопрос об инструменте.
Я мог бы вручную просмотреть код и предположить, что не забыл сломать все зависимости, но это подвержено ошибкам. Сейчас я делаю пометку (с помощью некоторой скрытой функции изменения резкости) всех использований определенных (не только для интерфейса, пользовательских) пространств имен. Но есть сборки, которые смешивают интерфейсы и реализации, плюс не все мои коллеги используют Resharper, плюс у меня есть ощущение, что это может быть еще проще, например, простая проверка да / нет.
Если для этого и есть какой-то отличный коммерческий инструмент, это тоже хорошо.
РЕДАКТИРОВАТЬ: может быть, я должен выразить это более четко: как я могу легко, в Visual Studio, увидеть, от каких неинтерфейсных зависимостей зависит мой класс / метод? Должны быть инструменты для этого (я надеюсь), деньги - это второстепенная проблема.