У меня больше всего было сказано выше, но я обычно делаю это по-другому. Я не люблю прерывать тесты за пределами сферы действия, над которой я сейчас буду работать. Тем не менее, я также не хочу ограничивать мой рефакторинг на основе некоторого иррационального «административного страха кода» (я думаю, что такие умственные вещи создают еще более серьезные проблемы с качеством).
Итак, что я обычно делаю, так это то, что я добавляю новый код с новым поведением, сохраняя старый в течение короткого периода времени (осуждаю его), достаточно долго, чтобы стабилизировать новые функции. Затем я решаю ВСЕ другие тесты в одной развертке, все в то же время, убедившись, что вы ТОЛЬКО исправить это.
В C# (в качестве примера) необязательные параметры со значениями по умолчанию действительно могут мне помочь, но в остальном я просто перегружаю или создаю новые методы ctor /.
Выполнение этого способа имеет тенденцию удерживать меня гораздо более сосредоточенным на задаче (тесте) под рукой, но что более важно, это также держит меня беспощадным при реорганизации. Рефакторинг чувствует себя более естественным и менее разрушительным.
Один главный i ДЕЙСТВИТЕЛЬНО не применим к модульному тестированию DRY. Я бы не рекомендовал никому принести это мышление в тестовый мир. DRY имеет тенденцию создавать тестовые тесты, которые трудно поддаются наблюдению. У меня довольно много кода в тестах, но легко следовать, чем DRY.
Хотя я в основном согласен с @Aaron, я бы не стал беспокоиться о том, чтобы сразу разбить несколько тестов. Самое главное, чтобы вы тщательно проверили свой код. В самом деле, рекомендуется, и я должен иметь одно место для изменения разрыва кода, но иногда он добавляет излишнюю сложность. –