Предполагая, что вы используете систему контроля версий, вот что я бы сделал:
- Напишите тесты для старого кода.
- Убедитесь, что испытания пройдены.
- Проверьте это в системе контроля версий.
- Теперь, как
Отдельное изменение, заменить
реализация (т.е. добавить новый
внедрение и удаление старых
реализации) и убедитесь, что
тесты еще проходят.
В рамках шага 1 вы можете захотеть написать небольшую "привязь" для старого кода, чтобы вы могли видеть, какие значения он выдает, если ваша основная цель - просто сохранить существующее поведение. Важно то, что у вас есть тесты, которые проходят старую реализацию.
Причина для шага 3 состоит в том, что если вы когда-либо обнаружите, что пропустили важный случай, вы можете синхронизироваться с изменением, в котором вы отправили тесты со старым кодом, добавить новый тест, убедиться, что он работает, а затем выполнить повторную синхронизацию с и убедитесь, что он все еще работает (при необходимости исправляя новую реализацию).