🎉
Только в моём случае, vet ругается на объявление ранее err в возврате из функции. Мдя.
Илья
так кто что думает про мокание БД с сложными запросами? кто-то был против, не помню почему
Nik
И рекомендовали для норм тестов поднимать БД в контейнере
Илья
я все еще собираю мнения, пока варинат с контейнером с БД -- самое рабочее решение но мне не нравится: файл sql вместе с тетами, его тоже приходится поддерживать мигрировать и тп
Nik
Вообще по хорошему - на уровне кода абстрагироваться от хранилища
Nik
И оставить работоспособность драйвера на совесть их писателей
Nik
Но можно налететь на сюрприз
Илья
у нас есть такая штука "команды в БД" -- это обхекты с опциями которые динамически собираются, все это через ORM генерит запрос, например "запросить все статьи + с лайками + с автором + прочая фигня"
Илья
и как оно абстракно от реализации бд, можно посунуть мок, но мок ооочень сложный получается
Илья
те команда запроса отвязана от бд
Илья
но как-то не помогает)
Nik
ОРМ?
Nik
(Я уже немного запутался)
Илья
хочу сделать так, чтобы тестировать можно было без реального сервера БД, если есть подходящие адекватные способы это сделать
Илья
разумный смособ
Илья
или понят, где менять вообще
Slava
логику тестируй юнит тестами, там не нужна бд
Nik
Наверно там из логики прямое обращение к орм
Slava
и зачем делать запрос в базу? тебе же надо проверить что сам запрос сгенерировался ожидаемо
Nik
Наверно из стоит разъединить.
Nik
И смотреть, что функция отдала на запись
Nik
Или спросила на чтение
Nik
А орм оставить сбоку
Nik
(Наверно)
Slava
можно и так
Slava
я лично всё тестирую на реальной базе =) так тупо проще
Nik
С другой - собирать все окружение на своём компе - гемор
Nik
Особенно если у тебя есть и каучбейс, и эластик, и редис и мускул
Nik
И ещё зоопарк
Nik
Вариант 2 - CI собрать
Nik
Но тут надо пушить и смотреть результаты
Nik
3-5 минут
Nik
С моками тупо быстрее
Nik
Но как нам сегодня сказали - разработчики драйверов в большинстве своём тесты не пишут
Slava
тебе в любом случае собирать девелоперское окружение
Slava
иначе как разрабатывать? =)
Slava
и в нём тесты и сервисы должны подниматься, иначе как они тестируются? =)
Илья
Вариант 2 - CI собрать
сейчас так и есть, сложно поддерживать
Nik
Если я что то зарефактлрил немного, или сделал быстрый фикс - я хочу быстро протестить, а потом уже выплюнуть все в CI и уйти пить кофе. А так надо над ним сидеть и смотреть
Nik
сейчас так и есть, сложно поддерживать
Поддерживать не сложно, просто надо этим заниматься. А не все хотят.
Nik
По идее должны быть админы , которые все поддерживают. Но обычно из нет
Sebor▂▅▇█▓▒░
Slava
нет
Slava
По идее должны быть админы , которые все поддерживают. Но обычно из нет
почему админы? Кому это надо? - программистам, пусть сами и поддерживают
Nik
Пусть и сами сервера собирают
Nik
И сами себе гит на сервера ставят
Nik
И сами себе окружение
Sebor▂▅▇█▓▒░
я знаю, кто этим занимается
Sebor▂▅▇█▓▒░
девопсы)
Nik
И сами пусть деплоят
Nik
И сами админы
Nik
Фулстек прогер=девопс
Slava
почему нет?
Nik
))
Nik
почему нет?
Потому что прогать некогда будет
Nik
А в остальном проблем нет
Slava
а смысл прогать, если деплоить некуда? =)
Nik
Потому я набрал умных стремящихся студентов. Они мне поднимают инфрастуктуру, и деплоят, и ci админист
Nik
И им полезно и мне удобно, и они в фоне в код смотрят, иногда пару строк пишут
Slava
мм, отправлять студентов на самую опасную/сложную часть это правильно =)
Nik
Не сразу конечно, но результатам за 2 два года очень доволен
Slava
как же доволен, если девелоперсого окружения нет нормального? =)
Nik
Работает
Nik
Меня огорчает что долго
Nik
Именно что надо пушить
Nik
А не на своём ноуте
Sebor▂▅▇█▓▒░
ну видимо что-то не то у вас с ci, если на своем ноуте выходит заметно быстрее
Nik
ну видимо что-то не то у вас с ci, если на своем ноуте выходит заметно быстрее
Мок на ноуте всегда быстрее, чем поднят в контейнере чистую базу
Nik
Нет?
Slava
обычно время программистов ценнее, если это конечно не умные студенты
Nik
Кто из пристувующих держит на рабочей машине базу для тестов чистую (не ту, на которой идёт разработка)
Sebor▂▅▇█▓▒░
Нет?
Мне кажется, если все делается одинаково, то разницы быть не должно, где поднимать