Существует рефакторинг под названием Добавить параметр , который может помочь здесь.
Если ваш язык поддерживает перегрузку метода , вы можете сначала создать новую функцию с новым параметром, скопировав тело существующей функции и решив вашу проблему.
Затем, когда проблема будет решена, вы можете изменить все тесты, один за другим, чтобы вызвать новый метод. Последний вы можете удалить старый метод.
С языком, который не поддерживает перегрузку методов, создайте новую функцию с другим именем, скопируйте тело существующей функции в этой новой функции, получите существующую функцию, вызывающую новую функцию, возможно с фиктивным значением для новый параметр. Тогда вы могли бы пройти все свои тесты. Сделайте так, чтобы ваши старые тесты вызывали новую функцию, одну за другой. Когда старый метод больше не используется, его можно удалить, а новую функцию переименовать.
Это немного сложный процесс, но я думаю, что - это способ TDD следовать красно-зеленому рефактору.
Значение по умолчанию для параметра также может помочь, если оно доступно.