Это пахнет, как будто у вас не та проблема. То, что вы описали, сродни созданию «юнит-теста», что заставляет меня поверить, что ваши юнит-тесты действительно тестируют юнит.
Что не является критикой того, что вы пытаетесь сделать: переход от «где мы сегодня» к «где-то еще, что заметно лучше» - выигрышный ход. Тем не менее, предлагается немного отступить, чтобы оценить, где вы находитесь - понимание того, как ваша текущая ситуация отличается от какого-то платоновского идеала, может помочь показать новые возможности.
Есть множество предложений о том, как определить ваши вспомогательные методы. Другой возможностью было бы просмотреть реализацию, чтобы определить, существуют ли вспомогательные классы, скрывающиеся в вашей текущей реализации. Создание нового класса и набора тестов для его осуществления всегда приемлемо.
Обратите внимание, что этот подход изолирует вас от рефакторинга: вы можете изменить реализацию, не изменяя свой набор тестов (поскольку модульные тесты для вспомогательного объекта продолжают проходить, даже если вспомогательный объект больше не является частью вашей производственной реализации), и вы получаете чистую упаковку реализации и тестов для нее (сценарий использования: вы решаете, что bozo-sort является неправильной реализацией, и ее больше не следует использовать. Если реализация bozo-sort изолирована, то вы просто удаляете ее и его тесты. Но когда тесты реализации bozo-sort перепутаны со всеми остальными тестами, нужно больше думать).
Может также помочь понять, почему у вас есть модульные тесты для вашего кода. Если одной из причин является «сделать рефакторинг безопасным», то вы не хотите писать тесты, которые запирают вас в реализации.