TDD: рефакторинг в новых классах - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть класс с тестами после многих красно-зеленых циклов.Я вижу, что класс большой и выполняет разные задачи.

Теперь я хочу сделать рефакторинг ... после рефакторинга у меня есть 3 класса и 100% покрытие, и все тесты все еще зеленые.

Но проблема в том, что я тестирую два новых класса поверх тестов из "старого большого класса", должен ли я разделить тесты сейчас ??Или я должен написать дополнительные тесты для каждого класса, прежде чем я сделаю рефакторинг кода в классах?

1 Ответ

0 голосов
/ 21 сентября 2018

Должен ли я разделить тесты сейчас?

Быстрое следствие "рефакторинга" - ваши тесты не нужно было менять.Публичный API и наблюдаемое поведение вашей реализации не изменились.Вы только что создали несколько новых границ модулей в реализации.

(Если внесенные вами изменения заставили вас изменить существующие тесты, то выполняемое вами действие не было «рефакторингом»).

Поскольку общедоступный API не изменился, существующие тесты все еще имеют ценность - они описывают требуемое поведение вашего исходного API.Поэтому вам не следует «разбивать» эти тесты.

Если новые классы, созданные вами во время рефакторинга, будут перенесены в общедоступный API, вам следует ввести новые тесты для нового общедоступного API.

Ваши существующие тесты исходного API остаются нетронутыми до тех пор, пока вы не объявите об окончании срока действия API, не устарели и не достигнете предельного срока его окончания.В этот момент вы можете удалить тесты старого API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...