Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.68/40: Рейтинг темы: голосов - 40, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 12.03.2020
Сообщений: 32

Нужен пример (рабочий) по тестированию postgresql

12.08.2020, 11:17. Показов 8387. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, ребята.
Создал проект, все работает на java spring + posgresql, но вот проблема не могу протестировать это дело.
в Сети куча примеров проектов с github, но все либо не собирается, либо не работает.
Не могли бы дать мальенкий пример проекта с тестированием на базе pom.xml?
Можно конечно сделать собственный класс тестирования, но думаю это лишнее так как есть стандартные
инструменты. Среда у меня эклипс sts. Будьте добры, выложите пожалуйста рабочий простейший
проект для тестирования либо здесь либо где-нибудь на гитхабе.
Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.08.2020, 11:17
Ответы с готовыми решениями:

Сортировка Шелла - нужен рабочий пример
нужен рабочий код сортировка шелла

Как называется схема, нужен рабочий пример
Всем привет. Нужна подсказка ) На схеме 4 "ключа" (так это называется?), открываясь попарно по диагонали, меняют полярность на...

Замена текста. Нужен рабочий пример с stringreplace
stringreplace -киньте синтаксис на русском Добавлено через 30 минут inputstr:=stringreplace(inputstr,'.',',',); inputstr = 5,5 не...

31
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
12.08.2020, 18:20
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Saggitarius80 Посмотреть сообщение
h2 непойдет, так как на реальной базе может быть другой расклад.
какой например?
Единственное отличие h2 от реального постгреса, которое мне пока что попадалось это то, что он из коробки не поддерживает расширение для uuid, которым удобно генерить uuid при вставке в БД. Решается проблема так же довольно просто. В остальном за много лет тестирования с h2 никаких проблем не возникало при работе с режимами совместимости postgre, mysql, mssql, oracle

Если же все ещё неимется, то есть вот такая штука
https://habr.com/ru/company/hh/blog/333616/
0
0 / 0 / 0
Регистрация: 12.03.2020
Сообщений: 32
12.08.2020, 22:01  [ТС]
Ну вот, немного переделал, рабочий пример как юнит тестить постгрес.
Правда пример получился несколько не тривиальный через @Service
попробую @Autowired BookRepository маппить напрямую.
Вложения
Тип файла: zip spring-boot-fundamentals-unit-test.zip (90.3 Кб, 1 просмотров)
0
0 / 0 / 0
Регистрация: 12.03.2020
Сообщений: 32
12.08.2020, 22:27  [ТС]
а вот вы мне скажите h2 поддерживает иерахические типы данных как я использую в постргес типа ltree? Смотрю на типы
а вот фигушки, не поддерживать и как скажите я буду это юзать в h2? Иерархические нужны для иерархии в организации, чтобы
не морочится с разными деревьями типа листов сетов.

Data Types
Index
INT
BOOLEAN
TINYINT
SMALLINT
BIGINT
IDENTITY
DECIMAL
DOUBLE
REAL
TIME
TIME WITH TIME ZONE
DATE
TIMESTAMP
TIMESTAMP WITH TIME ZONE
BINARY
OTHER
VARCHAR
VARCHAR_IGNORECASE
CHAR
BLOB
CLOB
UUID
ARRAY
ENUM
GEOMETRY
JSON
INTERVAL

Увы, нету типа ltree. Хорошую статью вы дали, но много букоф. Привык брать типовой простой проект, где а) все работает б) есть то что мне нужно и вместо мануалов просто изучаю рабочий код. По-моему так намного быстрее. Дело в том что спринг это слишком много для Атоса. Моя голова и время не позволяют так загружать себя информацией в большей части не нужной. И в мускуле тоже нет иеррхического типа, есть только у мелкомягких. Есть вроде в новом мускуле, но после его установки у меня благополучно лег phpmyadmin.

Добавлено через 14 минут
Или, например, есть такой замечательный тип в постгрес
8.9.1. inet
8.9.2. cidr
8.9.3. inet vs. cidr
8.9.4. macaddr
есть они в h2? их планируется юзать, и что опять танцы с бубном?

Добавлено через 3 минуты
Вам конечно спасибо за помощь, но вот что пишут из статьи, которую вы дали
что очень точно отражает проблемы которые я тут описал
В нашей компании для unit-тестирования исторически использовалась HSQLDB. И все бы ничего, но на продакшене стоит PostgreSQL, и получалось, что тесты не полностью отражают то, что происходит на проде. Некоторые фичи приходилось оставлять без тестирования: например, запросы, использующие window functions, протестировать не удавалось. Для некоторых тестов приходилось делать достаточно навороченные костыли: яркий тому пример — разная реализация мэппинга пользовательского типа массива на SQL в PostgreSQL и HSQLDB (ниже я расскажу об этом подробнее). Также мы столкнулись с проблемной реализацией exists — были случаи, когда ни с того ни с сего тест падал с NPE где-то в недрах HSQLDB.
Добавлено через 3 минуты
Тем более проблемы поднять сервак постгрес в линухах вообще не представляет никаких. Зачем же юнит тестить на суррогатах, больше нервов уйдет на это. А испытав на реальном вы будете на 100 уверены, что ничего у вас не упадет, только если в тестах намудрили.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
12.08.2020, 22:30
так вопрос то какой у тебя?
0
0 / 0 / 0
Регистрация: 12.03.2020
Сообщений: 32
12.08.2020, 22:39  [ТС]
проблема решена и проект выложил. А вопрос осталось размять можно ли использовать mock базы типа h2 как замена постгрес и факты показывают что нельзя. что-то общее не более того можно наверное, но как всегда дъявол в деталях.

видимо по спринг бут форум не совсем тот.
0
0 / 0 / 0
Регистрация: 12.03.2020
Сообщений: 32
13.08.2020, 09:39  [ТС]
Эта версия проекта более корректная. Убрал много лишнего и делается всего один тест.
Создается таблица Bookos и вносится всего одна запись в таблицу "the name of the rose"
Также если запустите как приложение спринг появится запись "Hobbiton"
Обратите внимание на @Rollback(false) если это уберете из теста, тогда все изменения
в базе не будут сохранятся. Эта штука не нужна, но для таких фом неверущих таких как я
это полезная фича позволит вам увидеть через pgAdmin действительно ли ваш код что-то пишет в базу.
Енжой!
ну а кто не спрятался, я не виноват.
Вложения
Тип файла: zip spring-boot-fundamentals-unit-test.zip (74.7 Кб, 0 просмотров)
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
13.08.2020, 10:25
Цитата Сообщение от Saggitarius80 Посмотреть сообщение
Увы, нету типа ltree.
всякие хитрые типы обычно хороши пока не нужна унифицированная поддержка со стороны spring data. А когда она нужна, начинаются проблемы. Тоже самое касается inet cidr и.т.д. Обычно это расширения, которые по-сути представляют собой перенос части логики в БД что обычно является плохим решением.

Цитата Сообщение от Saggitarius80 Посмотреть сообщение
Хорошую статью вы дали, но много букоф.
ну лан тогда. Делай как знаешь
1
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
13.08.2020, 10:29
Цитата Сообщение от KEKCoGEN Посмотреть сообщение
унифицированная поддержка со стороны spring data
А унифицированная поддержка хороша, пока не упираешься в производительность и объём данных, тогда и начинаются оптимизации в виде использования встроенных средств БД или вообще переезд на узкоспециализированные хранилища. )
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
13.08.2020, 12:01
Цитата Сообщение от korvin_ Посмотреть сообщение
А унифицированная поддержка хороша, пока не упираешься в производительность и объём данных, тогда и начинаются оптимизации в виде использования встроенных средств БД или вообще переезд на узкоспециализированные хранилища. )
тоже верно. Но я не сторонник того, чтобы оптимизировать заранее и пытатьсья угадать где будет жать через год. Обычно нет бесконечного времени и бюджета, чтобы построить идеальное и оптимальное решение. Всегда приходится искать компромисс.
1
0 / 0 / 0
Регистрация: 12.03.2020
Сообщений: 32
13.08.2020, 13:43  [ТС]
унифицированная подержка со стороны spring дататипа ltree как раз присутствует. Проверено. Вот она:


@Column(name = "path", columnDefinition="ltree")
private String path;

Теперь используя это, можно строить деревья иерархии организации и чего угодно.

Добавлено через 16 минут
насчет производительности опять KEKCoGEN в теме. Преждевременно об этом думать. Более того, чаще программисты думают, что
оптимизируют "бутылочное горлышко", но как всегда жизнь говорит другое.
0
0 / 0 / 0
Регистрация: 12.03.2020
Сообщений: 32
13.08.2020, 20:28  [ТС]
...Тоже самое касается inet cidr и.т.д. Обычно это расширения, которые по-сути представляют собой перенос части логики в БД что обычно является плохим решением...
Ничего похожего. Представьте я хакцер. И мне нужно понять кто постоянно ломится мне на порт(не важно какой) тогда ип нехорошего человека нужно писать в базу, так как это данные и к логике не имею никакого значения. Логика как была в приложении там и осталась. А база мне нужна для хранилища ип нехороших людей, чтобы с ними уже производить какие-то действия. Более того в такую базу я могу писать например кое-что из трафа, чтобы детектить атаки. И куда записывать надо куски траффика? Правильно в базу. А потом уже вытаскивать оттуда и аналить, что и делает логика приложения. У меня все ходы записаны, гроссмейстер!

Добавлено через 21 минуту
раз уж о базах говорим, такой вопрос, стоит ли все запросы переносить в процедуры? Или такой вопрос в отдельную ветку лучше. Но просто думаю, что такие вопросы уже были здесь.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
13.08.2020, 21:22
Доп. вопрос надо задать в отдельной теме. По поводу кулхацкера мне лень столько текста писать да и смысла нет.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.08.2020, 21:22

Нужен рабочий пример связки TreeView и MSSQL
Всем день добрый! Прошу, по-возможности, поделиться рабочим примером связки TreeView и MSSQL. В идеале - с отдельным MDI окном...

Нужен рабочий пример решения СЛАУ методом Гаусса
Нужен рабочий (ну или более менее рабочий) код для решения СЛАУ методом Гауса на С++. Уже замучился искать

Решение ОДУ методом Адамса - нужен рабочий пример
Привет всем! долгое время не могу найти работающий код для решения ОДУ Методом Адамса, буду очень благодарна если кто подкинет пример или...

Нужен рабочий простенький пример консольного http прокси-сервера
Всем привет. Может кто знает OpenSource или рабочий простенький пример консольного http прокси сервера? Этот сервер должен принимать...

Нужен совет по тестированию железа
Всем привет! Я не программист, поэтому и обращаюсь к профессионалам. У меня проблема ... ноутбук изначально жутко виснет. Причем еще...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru