
Evgeniy
04.07.2017
23:05:08
декомпозиция это от общего к частному
при плохой декомпозиции (слишком детальной где не надо)
получается херовый класс

Sergey
04.07.2017
23:05:51
прям один класс получается

Google

Evgeniy
04.07.2017
23:05:56

Sergey
04.07.2017
23:05:59
хз, я тебя не понимаю

Evgeniy
04.07.2017
23:06:05
что ты получаешь пользователем либы

Sergey
04.07.2017
23:06:24

Evgeniy
04.07.2017
23:06:25
ты получаешь правильный взгляд на зависимости

Sergey
04.07.2017
23:06:41

Evgeniy
04.07.2017
23:06:41
за счет зависимостей ты нормально декомпозируешь

Sergey
04.07.2017
23:07:01
попробуй еще раз... всеравно не понятно причем тут зависимости. Это зависимости тестируемого кода?
клиенту твоего клсса плевать на зависимости твоего кода

Evgeniy
04.07.2017
23:07:46
ну давай пример)

Sergei
04.07.2017
23:07:49

Sergey
04.07.2017
23:08:10
хотя... тут смотря что они делают конечно

Google

Sergei
04.07.2017
23:08:28

Sergey
04.07.2017
23:08:30
но вообще я бы сказал что "такой код нельзя покрыть юнит тестами"
с моками все не так просто на самом деле
с ними легко попасть в ловушку в духе "твой тест ничего не тестит"

Sergei
04.07.2017
23:10:33
Можно сделать хитро, сделать адаптер. Потом в имплементации этого адаптера каждый метод будет дёргать только один метод утилитного класса, вот и отвязались от статических методов. А адаптер мокируем.

Evgeniy
04.07.2017
23:19:15
вот о чем я говорил https://pastebin.com/Yy8GxwYT по поводу зависимостей
какой код проще покрыть юнит тестами

Sergey
04.07.2017
23:20:09
то есть ты хочешь сказать что "юнит тесты форсят людей юзать IoC и late binding"?
пффф

Evgeniy
04.07.2017
23:20:23
нет

Sergey
04.07.2017
23:20:31
тогда ничего не понял

Evgeniy
04.07.2017
23:20:37
я хочу сказать чтобы покрывать код тестами
он должен быть пригоден

Sergey
04.07.2017
23:20:47
ваш кэп

Evgeniy
04.07.2017
23:20:52
в остальных случаях покрытие тестами станет болью

Sergey
04.07.2017
23:21:00
.....и к чему ты это все говоришь вообще?

Evgeniy
04.07.2017
23:21:30
к тому что зависимости это то что передается в контроллер
если в твоем классе разные зависимости которые сложно контролировать

Sergey
04.07.2017
23:21:50
1. я хочу что бы мои ребята писали юнит тесты
2. в идеале до имплементации
3. как раз таки что бы больше углубляться в декомпозицию и следить за open/close и lsp

Evgeniy
04.07.2017
23:21:57
то и покрывать это больно

Google

Sergey
04.07.2017
23:22:05
и причем тут юнит тесты?
речь просто о каше

Evgeniy
04.07.2017
23:22:25

Sergey
04.07.2017
23:22:26
тут и без тестов боль будет
короч...

Evgeniy
04.07.2017
23:22:48
а тесты это серебрянная пуля

Sergey
04.07.2017
23:22:49
ты походу подустал малеха

Evgeniy
04.07.2017
23:22:53
которая решает все проблемы

Sergey
04.07.2017
23:23:00
серебрянных пуль нет

Evgeniy
04.07.2017
23:23:00
я показал 3 примера одного и того же
но одно покрыть тестами просто

Evgeniy
04.07.2017
23:23:08
другое нет

Sergey
04.07.2017
23:23:18
.....и к чему ты мне это показываешь, вот в чем вопрос?
у тебя уже если смотреть по связанности проблемы есть
а тесты - это клиент к тестируемому коду, и они будут страдать теми же болячками что и твой код

Evgeniy
04.07.2017
23:24:15
к тому что если люди не понимают что такое зависимости то будет все очень больно

Sergey
04.07.2017
23:24:28
допустим люди понимают что такое зависимости)))
тебя такой ответ устроит?

Evgeniy
04.07.2017
23:24:46
тогда и тесты будет писать не сложно

Google

Sergey
04.07.2017
23:24:47
более того, большинство даже понимают что такое контракты

Evgeniy
04.07.2017
23:24:54
и проблем с тестами быть не должно

Sergey
04.07.2017
23:24:55
и всеравно есть проблемы
и все вроде бы соблюдают IoC, пытаются думать в терминах SOLID, но тесты не пишут

Evgeniy
04.07.2017
23:25:41
ну тогда деспотия
вводи code coverage и запрещай его уменьшение, подход странный

Sergey
04.07.2017
23:26:14
code coverage ничего не говорит о том насколько у тебя все хорошо с тестами

Evgeniy
04.07.2017
23:26:16
но сделает так чтобы люди начали писать тесты

Sergey
04.07.2017
23:26:17
вот от слова совсем

Admin
ERROR: S client not available

Evgeniy
04.07.2017
23:26:24
поэтому и написал странный

Sergey
04.07.2017
23:26:36
....короч

Evgeniy
04.07.2017
23:26:47
зато он заставит людей писать тесты
и возможно кому то понравится

Sergey
04.07.2017
23:27:00
"заставить" не выйдет
это ооооочень хреновая стратегия

Evgeniy
04.07.2017
23:27:15
ну то есть ты сейчас спрашиваешь

Sergey
04.07.2017
23:27:16
надо объяснить

Google

Sergey
04.07.2017
23:27:28

Evgeniy
04.07.2017
23:27:36
как мне заставить людей писать тесты, потому что я считаю что это надо, но только чтобы это не выглядело как заставить ?

Sergey
04.07.2017
23:27:36
я для этого воркшопы и усиленное код ревью делать буду

f4rt~
04.07.2017
23:28:12

Sergey
04.07.2017
23:28:30

f4rt~
04.07.2017
23:28:36
да лаадно

Sergey
04.07.2017
23:28:41
проще потратить месяц и обучить чем 3 месяца искать разработчика

f4rt~
04.07.2017
23:28:45
я не верю что все так плохо

Sergey
04.07.2017
23:29:05
все ТАК плохо

f4rt~
04.07.2017
23:29:08
нет, ты немного не понял, если люди упрямо отказываются писать тесты их не заставишь
а взять человека который хочет научиться писать тест и обучить его совсем другое дело

Evgeniy
04.07.2017
23:29:44
более того, весь код что написан в проекте

Sergey
04.07.2017
23:29:51

Evgeniy
04.07.2017
23:29:53
он был с твоим участием
и как следствие ты сам раньше не думал что надо писать тесты

Sergey
04.07.2017
23:30:25

Evgeniy
04.07.2017
23:30:28
а потом решил что надо и теперь хочешь чтобы люди тоже начали так считать, но думаешь как бы так сделать

Sergey
04.07.2017
23:30:30
несколько команд

Evgeniy
04.07.2017
23:30:34
чтобы они сами к этому пришли

f4rt~
04.07.2017
23:30:38

Sergey
04.07.2017
23:30:59

Evgeniy
04.07.2017
23:31:03