Я пытаюсь осмыслить методологию TDD и столкнулся - я думаю, - с проблемой курицы и яйца: что делать, если исправление ошибки связано с изменением сигнатуры метода.
Рассмотрим следующую сигнатуру метода:
string RemoveTokenFromString (string delimited, string token)
Как следует из названия, этот метод удаляет все экземпляры token
из delimited
и возвращает результирующую строку.
Позже я обнаружил, что в этом методе есть ошибка (например, из строки удаляются неправильные биты). Поэтому я пишу тестовый пример, описывающий сценарий, в котором возникает ошибка, и убеждаюсь, что тест не прошел.
При исправлении ошибки я обнаружил, что методу требуется больше информации, чтобы он мог правильно выполнять свою работу - и этот бит информации может быть отправлен только в качестве параметра (тестируемый метод является частью статического класса).
Что мне тогда делать? Если я исправлю ошибку, это заставит меня изменить модульный тест - будет ли это «правильной» методологией TDD?