Фил Ранжин
могу статью ебнуть
🇺🇦 Дмитрий
я тоже к этому пришел, у меня щас сервисы это обертки над укстеншенами
🇺🇦 Дмитрий
сервисы тупо данные доставляют из инфраструктуры
🇺🇦 Дмитрий
и все охуенно, юниты без моков
Фил Ранжин
тут у @atsapura по этому подходу поинт есть
🇺🇦 Дмитрий
Фил Ранжин
Жги
считай что уже сжег
🇺🇦 Дмитрий
Я кину в чатик своим работягам
Mikhαil
и все охуенно, юниты без моков
инфраструктуру то ты все равно мокаешь, не?)
🇺🇦 Дмитрий
не, я либо интеграциионный тест пишу, либо вообще хер забиваю
🇺🇦 Дмитрий
потому как репозиторий внутри этого сервиса уже 100000000 раз протестили
Mikhαil
>юнит тесты без моков >пишу интеграционный или не пишу тест вообще
Roman
тут у @atsapura по этому подходу поинт есть
А? Что? Логика в чистых функциях это благо и здравый смысл, моки - хрупкое говно
Mikhαil
ну если не писать тесты то они точно без моков)
🇺🇦 Дмитрий
ты только второе предложение прочитал?
🇺🇦 Дмитрий
deposit(amount){ var user = repost.Get.....() user.deposit(amount) repos.Save(user) } а ну ка мокни тут репозиторий
🇺🇦 Дмитрий
и покажи чем твой мок будет отличаться в другом похожем тесте
🇺🇦 Дмитрий
если что, то это пример метода из сервиса
🇺🇦 Дмитрий
могу сделать скрин своего сервиса по ресурсам с работы
Kirill
можно писать супер хитровыебанный код, но в чем смысл если команда не разделяет такие подходы? Сначала надо на митингах обсуждать подходы а потом уже писать свой weird код
Anonymous
Func<long, User> userGetter
🇺🇦 Дмитрий
🇺🇦 Дмитрий
но щас сеньер сидит, рефакторит
🇺🇦 Дмитрий
только в том сервисе там 2 репозитория и кеш
Anonymous
оставь сеньора в покое, пусть делает что хочет
🇺🇦 Дмитрий
а он мокнуть чистую функцию пытается
Anonymous
просто попросись на кодревью и все
🇺🇦 Дмитрий
да, у нас 12к тестов тестят моки :D
Vasily
Обычная галера, чо уж там
🇺🇦 Дмитрий
есть даже случаи когда моки юзаются в БЛ
Anonymous
Зачем?
такие вопросы на галерах задавать нельзя
🇺🇦 Дмитрий
то-есть я тыкаю F12 и вижу в реализации dateTimeProvider.Setup(s=> s.Now)...
Roman
такие вопросы на галерах задавать нельзя
Ну, галеры разные бывают, при всей моей нелюбви к ним
🇺🇦 Дмитрий
то-есть норм по твоему? что у тебя в запросе от клиента сетапиться мок?
🇺🇦 Дмитрий
и этот мок юзается в бл
Ayrat
это настройка поведения вашего dateTimeProvider
Ayrat
ну типа бывает что люди мокают вызов DateTime.Now чтобы можно было управлять временем в тестах
Ayrat
ну как мокают. Оборачивают
Ayrat
я тоже так делал когда-то
Ayrat
сейчас не делаю
Roman
ну как мокают. Оборачивают
Пушто проще написать обёртку и интерфейс к ней, чем параметр прокинуть!
Anonymous
то-есть норм по твоему? что у тебя в запросе от клиента сетапиться мок?
я ничо не понял, но возможность управлять временем виртуально - это абсолютная необходимость по многим причинам.
🇺🇦 Дмитрий
там в конструкторе _dateTimeProvider = new Mock<IDateTimeProvider>()
🇺🇦 Дмитрий
так и мы могли бы дату кинуть
🇺🇦 Дмитрий
но почему то дату кинули в Setup
Roman
но почему то дату кинули в Setup
Если б вы кинули параметр, не было бы ещё одного мока, на который можно тестов написать
🇺🇦 Дмитрий
я понимаю, я просто описываю ситуацию в проекте
🇺🇦 Дмитрий
так сказать жалуююсь
Roman
Доведи ситуацию до абсурда просто
Roman
Пиши миллион тестов на миллион моков
🇺🇦 Дмитрий
с TestCase генераторами
🇺🇦 Дмитрий
чтоб по пол дня тестилось)
Roman
И заворачивай чужие пр, пушто тестов мало
🇺🇦 Дмитрий
ахаха )
Roman
И когда они тебе скажут, что должна быть мера, тут то у вас и состоится конструктивный диалог о том, что надо тестировать и что нет
Anonymous
а я не понимаю - ну захотел сеньор порефакторить код, чтобы <написать больше тестов или что там>, ну и какая @BashkaMen разница?
🇺🇦 Дмитрий
на прошлой месте работы было ещё хуже, там ститик переменные в контроллерах и разные контроллеры друг друга меняют так вот, пришли к нам на совбес девушка из беттинга, веду я собеседование, общаемся я понимаю какого уровня решали задачи они (в беттинге) и какого уровня задачи на том проекте. Рассказал про паблиш из вижуал студии кнопкой паблиш в расшаренную папку, а потому спросил у начальника "рассказать про состояние проекта?", он говорит "не нужно". Потому он вышел она спрашивает, а что там? А я говорю, та ниче, просто вишенька на торте )))
Ayrat
Читаю контракт рабочий. Глава Termination of Employment
Ayrat
Вот это дискриминация)))
🇺🇦 Дмитрий
а я не понимаю - ну захотел сеньор порефакторить код, чтобы <написать больше тестов или что там>, ну и какая @BashkaMen разница?
я разделил фичу на чистые методы и сервис, он щас сделает только сервисЫ, чтоб мокнуть один из них
Stas
Читаю контракт рабочий. Глава Termination of Employment
ты уже все?) сбегаешь от котлинов?)))
Ayrat
ты уже все?) сбегаешь от котлинов?)))
ага, уже почти всё. ща подпишу и ещё пару неделек
Stas
ты на месте поменял или релокейтишь ?
Ayrat
На месте, тут в Дублине есть все)
Ayrat
удобно
Stas
На месте, тут в Дублине есть все)
ну это я помню, на синьеров просили обходить бинарное дерево?)
Ayrat
сразу в компост?
вот походу да.
Анна
У меня вроде такого нет 🤔
Ayrat
У меня вроде такого нет 🤔
ну вот в джете я тоже такой ахинеи не видел))) и вообще впервые вижу так строго