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