|
Юнит тест не "полагаясь" на бд. как?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловandreykaTу тебя никогда не бывало что ты поменял какой то флоу и у тебя попадо половина тестов покрывающих код который ты пошатал? при этом код работает правильно.Реальный кейс: приходит заказчик и говорит "у нас тут все тупит", смотришь что там происходит и видишь: наркоманы реализовали иерархическую структуру и большинство внешних вызовов у них не child-parent, а child-root реализованный через цикл по child-parent; сколько стоит починить? условно день: переделать сохранение child и перемещение root; переделываешь, а потом смотришь что там моков налепили на неделю работы. Я не согласен. Вы в тему модульного тестирования втащили тему тестов перформанса. Нисколько не умаляя их значимости тем не менее я считаю что это совсем другая задача и к топику она имеет далёкое отношение. Там - другие подходы и другие принципы. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 14:11 |
|
Юнит тест не "полагаясь" на бд. как?
|
|||
---|---|---|---|
#18+
maytonЯ не согласен. Вы в тему модульного тестирования втащили тему тестов перформанса. Нисколько не умаляя их значимости тем не менее я считаю что это совсем другая задача и к топику она имеет далёкое отношение. Там - другие подходы и другие принципы. Там речь не о перфомансе. Речь о том, что когда на каждый чих бездумно понатыкано моков, то при малейшей смене сигнатуры метода, тебе надо будет фиксить все места, где этот мок вызывается. Модифицировать тестовые данные и тд. И зачастую на это реально уйдет времени больше чем на фикс. Зато покрытие 100% Вообще я уже отвык конечно от этого, при ФП не надо никаких моков и инжекшенов, все функции pure и total а тестовые данные не хардкодятся а генерируются по алгоритму(если интересно то гуглить про property-based testing) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 14:21 |
|
Юнит тест не "полагаясь" на бд. как?
|
|||
---|---|---|---|
#18+
ааа. хочу фп! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 14:59 |
|
Юнит тест не "полагаясь" на бд. как?
|
|||
---|---|---|---|
#18+
забыл никВообще я уже отвык конечно от этого, при ФП не надо никаких моков и инжекшенов, все функции pure и total а тестовые данные не хардкодятся а генерируются по алгоритму(если интересно то гуглить про property-based testing) Круть. Завидую. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 18:50 |
|
Юнит тест не "полагаясь" на бд. как?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловmaytonМоки - это правильный ответ. Но писать хорошие тесты - большое искусство.Моки к хорошим тестам никакого отношения не имеют, потому что все моки выглядят примерно так: Покритикуйте/оцените spring-boot приложение - это зло которое лучше избегать при любом удобном случае. Поскольку это мой проект могу рассказать что база там создаётся каждый раз при старте тестов на travis-ci. Структура заполняется при помощи flyway и тесты запускаются на реальной базе. С уважением, Валентин ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 19:04 |
|
Юнит тест не "полагаясь" на бд. как?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 19:10 |
|
Юнит тест не "полагаясь" на бд. как?
|
|||
---|---|---|---|
#18+
прямо как в 90-е вернулся. раньше так 18 лет назад на пыхе писали. здесь прекрасно всё )) и строк много и хтмл разметка вперемежку с кодом и цсс(вроде) и работа с файлами )) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 21:02 |
|
Юнит тест не "полагаясь" на бд. как?
|
|||
---|---|---|---|
#18+
andreykaT, Мне вот это "понравилось": Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
Я конечно понимаю, constructor injection - это хорошо, но в данном случае, слишком много аргументов. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 22:30 |
|
Юнит тест не "полагаясь" на бд. как?
|
|||
---|---|---|---|
#18+
Здесь SonarQube должен ругнутся. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 22:57 |
|
Юнит тест не "полагаясь" на бд. как?
|
|||
---|---|---|---|
#18+
cossack5andreykaT, Мне вот это "понравилось": Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
Я конечно понимаю, constructor injection - это хорошо, но в данном случае, слишком много аргументов. клин код говорит что два аргумента это лимит адекватности, три аргумента это трэш угар и израиль. интересно что бы автор сказал про 9 аргументов у конструктора? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 23:42 |
|
Юнит тест не "полагаясь" на бд. как?
|
|||
---|---|---|---|
#18+
andreykaTинтересно что бы автор сказал про 9 аргументов у конструктора? накатал еще одну главу по рефакторингу :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 12:22 |
|
Юнит тест не "полагаясь" на бд. как?
|
|||
---|---|---|---|
#18+
chpashaнакатал еще одну главу по рефакторингу :) где? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 12:42 |
|
Юнит тест не "полагаясь" на бд. как?
|
|||
---|---|---|---|
#18+
Tsyklopгде? мы употребляли условное наклонение - то есть, если бы автор увидел такой конструктор, то накатал бы статью, как такое отрефакторить ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2018, 16:07 |
|
|
start [/forum/topic.php?fid=59&gotonew=1&tid=2121714]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
45ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 172ms |
0 / 0 |