контракт должен быть простой для тестирования, если вам приходится писать сотни тест кейсов, чтобы понять, что какой-то из приватных методов работает корректно - значит сущность реализована не верно
Потому что это бинарная тема: либо хорошо, либо плохо. Третьего не бывает в этом вопросе. Можно мириться с действительностью и обслуживать такие методы, но это не делает их менее говнокодными
колбаса колбас: написал логику внутри компонента - написал тесты логики(функций) - получил замечание на ревью: сделай функции приватными - но как их тестировать - сделай хак someComponentFixture['initData'].toBeCalledOnce() - но мы выключим проверку типов - ну тогда сделай публичный метод поверх приватного - но чтобы тестировать логику приватного метода надо её повторить в публичном