Тесты пишутся обычно на поведение. Соответственно интерфейс даже скорей всего никак не изменится. Изменится внутренняя логика объекта за ним, тот самый код, который мы рефакторим.
как будто изначально оно работало хорошо и правильно зачем тогда рефакторить
Пользователь твоего интерфейса не видит тех процессов, при помощи которых и достигается это "работает хорошо и правильно". И вот именно эти процессы могут быть очень сложны в поддержке и понимании. Их мы и рефакторим.