Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7 8 9 10 .. 22   вперед  Ctrl
 unit-тестирование  [new]
XDiaBLo
Member

Откуда: Екатеринбург
Сообщений: 71784
Как бы вы стали тестировать класс, который использует БД? Мудрёным моком, или лучше поднять тестовый экземпляр БД какой-то локальный? Но не будет ли последнее уже интеграционным, а не юнит-тестированием?
21 фев 20, 07:37    [22084305]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4489
XDiaBLo,
Использовать бд. Какая разница где стоит, если обращение по ip?
Тесты как угодно назови.
21 фев 20, 10:05    [22084358]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27661
XDiaBLo
Но не будет ли последнее уже интеграционным, а не юнит-тестированием?

Будет.

А вместо мока можно и стаб подсунуть.
21 фев 20, 10:32    [22084374]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
Valentin Kolesnikov
Member

Откуда:
Сообщений: 3266
В spring-boot можно тестировать.

В Тревис можно поднимать базу.

Пример приложения с тестами.

https://github.com/javadev/pt-backend

Хорошего вам дня!
21 фев 20, 10:33    [22084376]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
mayton
Member

Откуда: loopback
Сообщений: 45470
XDiaBLo
Как бы вы стали тестировать класс, который использует БД? Мудрёным моком, или лучше поднять тестовый экземпляр БД какой-то локальный? Но не будет ли последнее уже интеграционным, а не юнит-тестированием?

Этот класс надо разделить на 2 части. Одна - это чисто Dao или какой нибудь CRUD объект. Вторая - это собственно БИЗНЕС-ЛОГИКА.
Вот первую часть тестировать вообще не надо. А вторую тестируй с полным покрытием всех кейсов.

Сообщение было отредактировано: 21 фев 20, 11:48
21 фев 20, 11:48    [22084431]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
XDiaBLo
Member

Откуда: Екатеринбург
Сообщений: 71784
mayton
XDiaBLo
Как бы вы стали тестировать класс, который использует БД? Мудрёным моком, или лучше поднять тестовый экземпляр БД какой-то локальный? Но не будет ли последнее уже интеграционным, а не юнит-тестированием?

Этот класс надо разделить на 2 части. Одна - это чисто Dao или какой нибудь CRUD объект. Вторая - это собственно БИЗНЕС-ЛОГИКА.
Вот первую часть тестировать вообще не надо. А вторую тестируй с полным покрытием всех кейсов.

Так вроде и разделено. Просто как делать покрытие 80% кода, если энтити не тестируй, круды не тестируй, и т.д... В итоге и тестировать то ничего почти не нужно.
21 фев 20, 12:25    [22084466]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
mayton
Member

Откуда: loopback
Сообщений: 45470
XDiaBLo
mayton
пропущено...

Этот класс надо разделить на 2 части. Одна - это чисто Dao или какой нибудь CRUD объект. Вторая - это собственно БИЗНЕС-ЛОГИКА.
Вот первую часть тестировать вообще не надо. А вторую тестируй с полным покрытием всех кейсов.

Так вроде и разделено. Просто как делать покрытие 80% кода, если энтити не тестируй, круды не тестируй, и т.д... В итоге и тестировать то ничего почти не нужно.

Правильно. Что ты там в крудах собрался тестировать?
21 фев 20, 12:27    [22084469]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4489
XDiaBLo
покрытие 80% кода,
это не догма.
Поиск кнопку в ветке нажимал хоть раз?
21 фев 20, 12:35    [22084479]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27661
XDiaBLo
mayton
пропущено...

Этот класс надо разделить на 2 части. Одна - это чисто Dao или какой нибудь CRUD объект. Вторая - это собственно БИЗНЕС-ЛОГИКА.
Вот первую часть тестировать вообще не надо. А вторую тестируй с полным покрытием всех кейсов.

Так вроде и разделено. Просто как делать покрытие 80% кода, если энтити не тестируй, круды не тестируй, и т.д... В итоге и тестировать то ничего почти не нужно.

Очень просто: берёшь инструмент, что показывает Code Coverage конкретного класса, и пишешь тесты, пока не будет 80%.
21 фев 20, 12:35    [22084480]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
XDiaBLo
Member

Откуда: Екатеринбург
Сообщений: 71784
mayton
XDiaBLo
пропущено...

Так вроде и разделено. Просто как делать покрытие 80% кода, если энтити не тестируй, круды не тестируй, и т.д... В итоге и тестировать то ничего почти не нужно.

Правильно. Что ты там в крудах собрался тестировать?

Задача простая, покрытие кода увеличить. В прошлой конторе вообще 100% покрытия требовали, и я делал. Даже для энтити, вообще для всего. Я чо, я и базу прикручу к тестам. Просто надо ли?
21 фев 20, 12:35    [22084481]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
XDiaBLo
Member

Откуда: Екатеринбург
Сообщений: 71784
PetroNotC Sharp
XDiaBLo
покрытие 80% кода,
это не догма.
Поиск кнопку в ветке нажимал хоть раз?

О чём речь вообще? Где кнопка, в какой ветке?
21 фев 20, 12:36    [22084483]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
XDiaBLo
Member

Откуда: Екатеринбург
Сообщений: 71784
Ну и да, догма. Требуется именно не менее 80%
21 фев 20, 12:36    [22084484]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27661
XDiaBLo
Ну и да, догма. Требуется именно не менее 80%

И в чем проблема? Берёшь и показываешь Code Coverage.
21 фев 20, 12:38    [22084486]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
XDiaBLo
Member

Откуда: Екатеринбург
Сообщений: 71784
skyANA
XDiaBLo
Ну и да, догма. Требуется именно не менее 80%

И в чем проблема? Берёшь и показываешь Code Coverage.

Чтобы показать, нужно сперва покрыть.
21 фев 20, 12:40    [22084489]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27661
XDiaBLo
skyANA
пропущено...

И в чем проблема? Берёшь и показываешь Code Coverage.

Чтобы показать, нужно сперва покрыть.

А для того, чтобы покрыть конкретный класс тестами, достаточно покрыть только его код.
Очевидно же.
21 фев 20, 12:43    [22084494]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4489
XDiaBLo
PetroNotC Sharp
пропущено...
это не догма.
Поиск кнопку в ветке нажимал хоть раз?

О чём речь вообще? Где кнопка, в какой ветке?
в ветке java много раз обсуждали unit тестирование.
Теперь понял?
21 фев 20, 12:44    [22084495]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
XDiaBLo
Member

Откуда: Екатеринбург
Сообщений: 71784
skyANA
XDiaBLo
пропущено...

Чтобы показать, нужно сперва покрыть.

А для того, чтобы покрыть конкретный класс тестами, достаточно покрыть только его код.
Очевидно же.

А для того чтобы получился бутерброд, достаточно намазать маслом хлеб.
21 фев 20, 12:57    [22084508]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27661
XDiaBLo
skyANA
пропущено...

А для того, чтобы покрыть конкретный класс тестами, достаточно покрыть только его код.
Очевидно же.

А для того чтобы получился бутерброд, достаточно намазать маслом хлеб.

Я не понимаю, в чем проблема.
Если вы хотите покрыть класс тестами, то пишите модульные тесты.
Если приложение, то выстраиваете пирамиду тестировпния: модульные, интеграционные, функциональные...
21 фев 20, 13:04    [22084515]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
XDiaBLo
Member

Откуда: Екатеринбург
Сообщений: 71784
skyANA
XDiaBLo
пропущено...

А для того чтобы получился бутерброд, достаточно намазать маслом хлеб.

Я не понимаю, в чем проблема.
Если вы хотите покрыть класс тестами, то пишите модульные тесты.
Если приложение, то выстраиваете пирамиду тестировпния: модульные, интеграционные, функциональные...

Вопрос был в первом же посте. И я уже получил ответ из другого источника. Мокать. Только мокать. Хоть это и КРУД, но однако же покрытие делать надо.
21 фев 20, 13:07    [22084523]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27661
Если логика в базе, то пишутся модульные тесты на уровне базы.
21 фев 20, 13:08    [22084524]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
mayton
Member

Откуда: loopback
Сообщений: 45470
XDiaBLo
mayton
пропущено...

Правильно. Что ты там в крудах собрался тестировать?

Задача простая, покрытие кода увеличить. В прошлой конторе вообще 100% покрытия требовали, и я делал. Даже для энтити, вообще для всего. Я чо, я и базу прикручу к тестам. Просто надо ли?

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

Покрытия и польза от него - это как логистическая кривая. Где - то на 60-70% она насыщается настолько
что добивать последние 30% становится безсмысленным дро4есрством и прокачкой ненужных метрик.

У меня к сожалению нет ссылок на пруфы. Это чисто моё мнение. Но может форумчане добавят.

Да. Не слушай любителей SpringTest. Это карго-культ. Они - фетишисты и сектанты.
И польза от их практик - сомнительна.
21 фев 20, 13:12    [22084526]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4489
mayton
Но может форумчане добавят.
вверху ТС сказал - внутренние установки компании.
Ну и все на этом.
Это как обсуждать величину отступов - два пробела или 4.
"Это политика"
21 фев 20, 13:20    [22084534]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
mayton
Member

Откуда: loopback
Сообщений: 45470
Топик посвященный политике. Мдя...
21 фев 20, 13:52    [22084557]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
mayton
Member

Откуда: loopback
Сообщений: 45470
Вот один попсовый JБлоггер пишет в своём уютненьком

https://www.baeldung.com/jacoco
Keep in mind though, 100% code coverage does not necessary reflects effective testing, as it only reflects the amount of code exercised during tests.
21 фев 20, 16:42    [22084764]     Ответить | Цитировать Сообщить модератору
 Re: unit-тестирование  [new]
забыл ник
Member

Откуда:
Сообщений: 3241
Божечки ж ты мой... Я всегда смело опсылаю в жопу таких постановщиков, слава богу авторитет позволяет:))

Вот что говорит один из банды GOF - . Кент Бек или вот Или еще тут

Вообще согласен с мэйтоном - 60% обычно за глаза - все что больше - только будет мешать кодить.
21 фев 20, 17:01    [22084776]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7 8 9 10 .. 22   вперед  Ctrl
Все форумы / Java Ответить