
Roman
16.04.2018
11:59:01

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

Roman
16.04.2018
12:00:56

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

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
Так как мы исходим из предпосылки, что мы не тестируем работу самой бд, то так получается наиболее оптимально, так как код считает что работает с реальной базой

Hell
16.04.2018
12:43:42

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

Sergey
16.04.2018
12:47:47

Maksim
16.04.2018
12:48:22

Sergey
16.04.2018
12:48:35

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 строк?
то что можно в уши нассать и сказать "они плохие" - это все умеют
у тебя была возможность сделать норм, ты ей не воспользовался и сделал плохо, что это говорит о тебе как о разработчике?

Hell
16.04.2018
13:00:07

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
не вижу связи между кодом и базой
Ну так в этом и проблема, что архитектура плохая. А эти инмемори позволяют тестировать любого уровня г-венности код, т.к. для них не надо париться с управлением зависимостей и вообще с кодом, и скорее всего там вопрос о тестировании встал уже после готового функционала, который писали "как могли".

Maksim
16.04.2018
15:39:18

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 сказал, ловишь ещё кучу сюрпризов.
Так чем проще-то? Отсутствием коннекта? Да насрать на него.
Расходы на создание схемы? Можно принебречь, они разовые

code4aman
16.04.2018
15:52:04

Maksim
16.04.2018
15:53:29
Просто по тому, что не все тесты а целом с бд работают. Похер какой
Я не фанат базы в тестах) но если писать нормальные функциональные тесты, то делать это на копии.

code4aman
16.04.2018
16:00:17

Google

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

Sergey
16.04.2018
16:57:14

Maksim
16.04.2018
16:58:16

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

Maksim
16.04.2018
16:58:52

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

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