Size: a a a

Angular - русскоговорящее сообщество

2021 May 12

АД

Александр Духновский... in Angular - русскоговорящее сообщество
Может быть вам стоит начать с изучения архитектурной темы? Там и про приватники найдете все что требуется и про контракты
источник

В

Валерий in Angular - русскоговорящее сообщество
В том-то и печаль, что не найду.
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Вброшу

Бывают ситуации, когда приватный метод очень сложный, но выносить его не хочется просто ради выноса. Ситуация, скорее, исключительная,  но бывает
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
А что за колбаса?
источник

АД

Александр Духновский... in Angular - русскоговорящее сообщество
Это говорит лишь о том, что кто-то наговнокодил и сделал приватный метод - бог
источник

ДМ

Денис Макаров... in Angular - русскоговорящее сообщество
если его надо тестировать, то вероятнее всего он не должен тут находиться
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Вынос кода ради тестирования?
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Абсолютно нет, точнее необязательно
источник

ДМ

Денис Макаров... in Angular - русскоговорящее сообщество
никто не говорит ради, скорее всего он должен быть вынесен, потому что нарушает solid
источник

АД

Александр Духновский... in Angular - русскоговорящее сообщество
Еще как обязательно. Починайте про объектную калистенику
источник

АД

Александр Духновский... in Angular - русскоговорящее сообщество
ну и про солид, да
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Вы ж пример в вакуума разбираете, откуда тут 'обязательно'?
источник

ДМ

Денис Макаров... in Angular - русскоговорящее сообщество
контракт должен быть простой для тестирования, если вам приходится писать сотни тест кейсов, чтобы понять, что какой-то из приватных методов работает корректно - значит сущность реализована не верно
источник

АД

Александр Духновский... in Angular - русскоговорящее сообщество
Потому что это бинарная тема: либо хорошо, либо плохо. Третьего не бывает в этом вопросе. Можно мириться с действительностью и обслуживать такие методы, но это не делает их менее говнокодными
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Контракт должен быть простой для пользования, а не тестирования
источник

В

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

ДМ

Денис Макаров... in Angular - русскоговорящее сообщество
+ это затрудняет понимание, как правило, хороший тест - это как дока. Он должен показывать, что делает ваша сущность
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Окей, закончим на зтом) с булевой логикой не поспоришь
источник

IB

Igor Bodnar in Angular - русскоговорящее сообщество
Ты так говоришь как будто тесты не граждане первого сорта в твоём проекте, а какие то маргинальные элементы
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Это не так должно быть

Вы сразу должны скрыть все лишние методы

Если есть публичный метод, который не юзается- почему он публичный?
источник