Не зная вашей объектной модели, советовать немного сложнее, но я бы сказал, что если вы абсолютно уверены, что все проверки / ассоциации / обратные вызовы нуждаются в , чтобы быть в этом место, есть все еще способы вычленить общее поведение. Поэтому, хотя я бы не просто переместил большой кусок кода из одного файла в другой, где он просто заново открывает класс, я бы сказал, что использование модулей / плагинов для описания распространенных типов поведения - хорошая идея.
Например, если вы создаете фид активности в стиле Facebook и все должно генерировать «события», то, возможно, вы захотите перенести это «Eventable» поведение в модуль, который при включении определяет ассоциации / валидации / и т.д.. Я бы сказал, что такой подход фактически улучшил бы ясность вашего кода, поскольку ручное указание этих ассоциаций повсюду не так выразительно, как объявление чего-либо как Eventable, и не так безопасно (вы бы дублировали логику во многих местах и когда логика меняется, остальное ты знаешь ...)
В целом, я бы сказал, взгляните на вашу объектную модель. Если в вашем наборе тестов вы заметили, что все ваши тесты требуют большой настройки, это может быть хорошим индикатором того, что вы что-то упустили в своей объектной модели. Опять же, хотя бы пример кода был бы хорош.