То, как я понимаю модульное тестирование, это именно то тестирование, которое я хотел бы провести. Я всегда смотрел на юнит-тестирование как тестирование белого ящика ; если в моем коде есть точка ветвления, это означает, что мне нужно два модульных теста для ее решения. Я думаю, что худший случай, с которым я когда-либо сталкивался, был один метод с 32 перестановками.
Проблема с модульным тестированием состоит в том, что если вы не исследуете все крайние случаи, изучая свой код и выясняя все различные пути, вы пропускаете один или несколько случаев и, возможно, вносите незначительные ошибки в свое приложение.
Итак, нет, я не вижу в вас странного. Метод может оставаться внутренним, и вы можете добавить дополнительный контрольный пример - вам, вероятно, нужен только один с исключением, верно?
В качестве альтернативы, вы могли бы реорганизовать функциональность в отдельный объект, который принимает ваш генераторный объект и возвращает его имя (на основе алгоритма выше). Это оправдало бы разделение тестов, потому что у вас был бы объект извлечения имени и реализации генератора вывода. Я до сих пор не уверен, что это сильно вас спасет, потому что вам все равно придется протестировать генераторы вывода, чтобы убедиться, что они правильно использовали экстрактор имен, но это разделит ваши функциональные проблемы и проблемы тестирования.