Да, вы можете переписать текущий код, чтобы он мог быть протестирован модулем в соответствии с
ко всем рекомендациям и передовым методам.
Однако, это может быть дорого, и Вы должны оценить стоимость и сравнить это
против заработка ...
Выгода в том, что вы можете обнаружить проблему с кодом, а также, если все сделано правильно, снижение сложности в результате рефакторинга.
Оба фактора могут сэкономить время - в будущем.
Стоимость - это время и усилия, которые вы должны потратить на рефакторинг вашего кода,
написание тестовых случаев, а также дополнительное время, которое вам, возможно, придется потратить в будущем
поддерживать контрольные примеры и проверочный код - и это может привести к значительным затратам.
Вы сравниваете известную стоимость с будущим риском, и я уверен, что многие умные ребята знают, как это сделать, но очевидно, что вы можете потратить бесконечное время на рефакторинг и насмешки, не уменьшая при этом риск неудачи. ноль (или даже вообще, если код и проблема сложны, и вы путаетесь во время рефакторинга), поэтому вам нужно найти баланс здесь.
В этом случае, поскольку код старый, возможно, будет нормально быть «неаккуратным» или «прагматичным» и выполнять тестирование «черного ящика» - или тестирование сверху вниз и просто тестировать интерфейс (или абстракцию), не беспокоясь о пародии база данных. И да, вы можете утверждать, что это не модульный тест, а системный тест или проверка функциональности.
... Но это может дать наилучшую отдачу вашим деньгам - или деньгам ваших работодателей / клиентов - или больше времени с вашим значительным другом (или, по крайней мере, больше времени для просмотра канала обнаружения).
Если у вас старый код, разрешите тестирование в «черном ящике», разрешите зависимости между тестами и скомпилируйте последовательность тестов, которая устанавливает тестовые данные и манипулирует ими, и, по крайней мере, они автоматически тестируются, а не тестируются на 100%.