@oop_ru

Страница 607 из 785
Roman
16.04.2018
11:59:01
у него NH
О, этот течёт

Sergey
16.04.2018
11:59:29
хз, уже лет 5 дотнетами не обмазываюсь потому не шарю...

Roman
16.04.2018
12:00:56
хз, уже лет 5 дотнетами не обмазываюсь потому не шарю...
Ну у нас православные - это EF Core, Dapper и Linq2db

Maksim
16.04.2018
12:21:57
а для тех, кто не знает что написано на какой-то странице xunit'а: зачем аще в тестах в базу писать?) Похер в какую (инмемори, или вполне настоящую) проверить, что инмемори база работает? или оракл потестить?)

Google
Дмитрий
16.04.2018
12:26:14
Проверить код который связан с базой напрямую

Но тут вполне достаточно мокнуть базу

Maksim
16.04.2018
12:27:17
не вижу связи между кодом и базой

Sergey
16.04.2018
12:40:40
вот. так связь где?)
вопрос что ты хочешь проверить... мне вот кажется что интеграционные тесты с in memory хранилищами немного.... неудобны

ну то есть либо у тебя хранилище так устроено что удобно (документно ориентированные какие) либо у тебя нет сложных запросов...

короч я за e2e

Maksim
16.04.2018
12:41:15
вопрос что ты хочешь проверить... мне вот кажется что интеграционные тесты с in memory хранилищами немного.... неудобны
ну я просто не хочу инмемори сторадж тестить.... и уж тем более оракл. поэтому хз даже

Sergey
16.04.2018
12:41:34
тебе не надо его тестить, тебе надо подсунуть данные

это норм для кода который невозможно пока потестить юнитами но при этом и базу поднимать не хочется

обычно это простые кейсы довольно

Дмитрий
16.04.2018
12:41:58
Mocks

Это натуральная подмена имплементации кода филлером для тестов

Google
Maksim
16.04.2018
12:42:52
тебе не надо его тестить, тебе надо подсунуть данные
о том и речь) почему тут учавствуют слова типа стораджей (вполне себе реальных)

Дмитрий
16.04.2018
12:43:09
Так как мы исходим из предпосылки, что мы не тестируем работу самой бд, то так получается наиболее оптимально, так как код считает что работает с реальной базой

Maksim
16.04.2018
12:44:05
не засорять живую базу ненужными записями
код аще не должен ни в какую базу ползать. Ни в живую, ни в тестовую

Hell
16.04.2018
12:44:57
код аще не должен ни в какую базу ползать. Ни в живую, ни в тестовую
такое ощущение что мы разговаривам сейчас о разных вещах

Maksim
16.04.2018
12:45:39
такое ощущение что мы разговаривам сейчас о разных вещах
такое ощущение, что кто-то не очень понимает что и зачем он пытается тестировать

Sergey
16.04.2018
12:46:44
не засорять живую базу ненужными записями
Максим тебе предлагает тестовую базу поднять

и я с ним согласен, если есть такая возможность лучше так

увы

такова природа приложений которые мы разрабатываем и интеграционных тестов

Maksim
16.04.2018
12:47:26
Максим тебе предлагает тестовую базу поднять
да не) максим предлагает аще базу не подменять, а мокнуть интерфейс. мне нахер не надо тестировать работу базы. Она работает гарантированно лучше моего кода

Maksim
16.04.2018
12:48:22
ну это к вопросу что интеграционные тесты не очень то и нужны)
а что у тебя тестируют интеграционные тесты?) запись в оракл?)

Maksim
16.04.2018
12:48:51
у меня?))
ну ты говоришь, что реальная база нужна (копия). Зачем?)

Sergey
16.04.2018
12:49:03
у меня есть куча фигни которой нужны данные на чтение

и я не могу это юнитами покрыть

ну точнее могу но толку....

а вот позитивный интеграционный тест покроет большую часть этого кода

Google
Sergey
16.04.2018
12:49:46
и для этих штук я делаю e2e тест где поднята вообще вся инфраструктура

база данных, кролики, эластика, рэдисы... полный фарш

20-30 сценариев позитивных, просто что бы убедиться что система в целом работает, и ном

Maksim
16.04.2018
12:50:32
ну если такие поднимаешь, то да, вопрос полной копии не особо стоит. и, опять-таки, не понятно в чём проблема у нашего гуру тестирования и энтерпрайз разработки

Sergey
16.04.2018
12:50:32
остальное покрывается юнитами

я тоже не понимаю.... там у него то ли какие-то бюрократические проблемы поднять тестовую базу то ли чего еще

Maksim
16.04.2018
12:51:07
мне кажется, всё сильно проще

Sergey
16.04.2018
12:51:13
но столько времени убить и до сих пор не сделать - это как по мне звоночек

ну короч, это ж @hell_boy_19811

что ты от него хочешь

Maksim
16.04.2018
12:51:54
признаки мозгов) #онжепрограммист)

Sergey
16.04.2018
12:51:57
он "рефакторил что бы его уволили"...

я до сих пор не понимаю этой логики

Hell
16.04.2018
12:57:15
я до сих пор не понимаю этой логики
ich habe diese Firma als Übergangsphase benutzt. Bei Firma ging es um sehr hohe technische Schulden von ehemaligen Entwickler, der ohne Framework programmiert. Ich war zwar während VG gewarnt, aber Angebot akzeptiert um für mich finanzielle Nachteile zu vermeiden. Jetzt habe ich endlich bei Ihnen gelandet. немцы прекрасно все понимают

Sergey
16.04.2018
12:58:02
я все еще не понимаю как написанное тобой привело к необходимости рефакторить простой код в говно на 10K строк?

то что можно в уши нассать и сказать "они плохие" - это все умеют

у тебя была возможность сделать норм, ты ей не воспользовался и сделал плохо, что это говорит о тебе как о разработчике?

Tex
16.04.2018
13:00:48
отрабатывал зарплату
сделать плохо за чужие деньги, это не отрабатывал, это проебал

Maksim
16.04.2018
13:03:24
у тебя была возможность сделать норм, ты ей не воспользовался и сделал плохо, что это говорит о тебе как о разработчике?
ещё если учесть, скок времени на это было просрано... как по мне, прикрывать низкую квалификацию плохими заказчиками - такое себе.

Google
Sergey
16.04.2018
13:04:32
я больше думаю что тут не в квалификации вопрос а в том, что движет человеком.... не проблему решать а паттернами обмазываться

Maksim
16.04.2018
13:05:15
паттерны ради паттернов - это как раз следствие опыта, имхо

code4aman
16.04.2018
15:37:56
не вижу связи между кодом и базой
Ну так в этом и проблема, что архитектура плохая. А эти инмемори позволяют тестировать любого уровня г-венности код, т.к. для них не надо париться с управлением зависимостей и вообще с кодом, и скорее всего там вопрос о тестировании встал уже после готового функционала, который писали "как могли".

code4aman
16.04.2018
15:39:37
И конечно это все интеграционные тесты, а юнит тестами их называют потому что эти данные не живут между сессиями тестов, ну или что-то такое)

Подстановка инмемори стораджа мало чем отличается от копии
Отличается ? Это дешевле делать и быстрее работает

Но может от стека это разнится чуток, но суть та же

Maksim
16.04.2018
15:41:42
Отличается ? Это дешевле делать и быстрее работает
Да нифига) действия ровно те же самые)

Aleh
16.04.2018
15:42:46
Ин мемори может быть сложнее, если репозиторий хитрый

Maksim
16.04.2018
15:43:42
code4aman
16.04.2018
15:44:27
1. Install dependency 2. Swap connection string

Maksim
16.04.2018
15:45:33
Не очень похоже на ответ)

code4aman
16.04.2018
15:47:09
Не очень похоже на ответ)
Нет явной работы с хранилищем

Maksim
16.04.2018
15:48:07
У тебя есть явная работа с хранилищем. Вот в чем фокус) Помимо всего прочего, как выше Aleh сказал, ловишь ещё кучу сюрпризов. Так чем проще-то? Отсутствием коннекта? Да насрать на него. Расходы на создание схемы? Можно принебречь, они разовые

Maksim
16.04.2018
15:53:29
Я имел ввиду что не надо руками поднимать бд, очищать между тестами и тп
Это имеет смысл только на тысячах тестов, которые активно дрючпт бд. А такое не часто встречается.

Просто по тому, что не все тесты а целом с бд работают. Похер какой

Я не фанат базы в тестах) но если писать нормальные функциональные тесты, то делать это на копии.

code4aman
16.04.2018
16:00:17
Это имеет смысл только на тысячах тестов, которые активно дрючпт бд. А такое не часто встречается.
Ну я не говорю что это хорошо, я говорю что это позволяет тестировать без сайд эфектов почти любой сильно связанный (coupling) код с минимальными усилиями. Что мешает людям серьёзней относится к архитектуре

Google
Maksim
16.04.2018
16:01:43
Связанность тут не особо подходит. Как раз говнокодище проще тестить на копии. Не придётся палки подставлять, что бы закрывать все моменты в кривом интерфейсе.

Sergey
16.04.2018
16:57:14
Sergey
16.04.2018
16:58:32
более того, возможность покрыть юнитами можно использовать как метрику связанности)

ну то есть тебе поможет persistence ignorance

Maksim
16.04.2018
16:58:52
никак)))
Ч.т.д)

ну то есть тебе поможет persistence ignorance
Вопрос изначально стоял не в качестве кода как такового, а что с помощью инмемори легче легаси тестировать. Вот пытаюсь понять, с чего вдруг легче-то

Sergey
16.04.2018
17:45:32
ну смотри...

хотя...

не, не смотри... тоже не понимаю

там же полностью своя реализация репозитория нужна с учетом запросиков в базу и т.д.

то есть либо это неплохой такой легаси который это позволяет, либо он весьма простой и там поднять базу будет всеравно проще

Maksim
16.04.2018
17:46:24
Вооот

Sergey
16.04.2018
17:46:53
по поводу "тесты быстрее" - я запускаю postgresql в tmpfs для тестов - работает раза в 2 быстрее чем просто

Maksim
16.04.2018
17:47:31
Об оракл руки не пачкал, но, думаю, его в оперативку запихнуть тоже не биг дил

Sergey
16.04.2018
17:47:56
нууу... хэзээээ

это те не постгрес

Maksim
16.04.2018
17:49:01
Быстрый вопрос к гуглу отвёл прям на оф доку)

Sergey
16.04.2018
17:49:52
там докер образ вроде весил 2-3 гига

Bohdan
16.04.2018
17:50:37
там докер образ вроде весил 2-3 гига
вся винда в комплекте :D

Maksim
16.04.2018
17:51:02
Хз. Я даже мимо оракла не проходил. У нас был дба, были громадные планы по миграции.. но планы улетели в мусорку вместе с дба)

Страница 607 из 785