Опять же, если тебе надо отрефакторить систему на 10 миллионов строк -- это проблема, но если это какой-то модуль, то вон компании прям целиком модули перепиывают.
Или, как вариант, можно написать тесты не кодом, а в виде данных, и тогда все тонкости API будут только в маленьком тестовом фреймворке, а тесты будут более декларативны.