powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Генерация или добавление тестовых данных
22 сообщений из 22, страница 1 из 1
Генерация или добавление тестовых данных
    #39024386
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите что лучше использовать для добавления или генерации тестовых данных в БД? Интересуют инструменты и сам процесс работы с тестовыми данными.
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39024417
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9Подскажите что лучше использовать для добавления или генерации тестовых данных в БД? Интересуют инструменты и сам процесс работы с тестовыми данными.

junit тесты

http://www.mkyong.com/spring/spring-embedded-database-examples/
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39024512
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Atum1, а вы у себя тоже скриптом просто импортируете данные? Будет ведь проблема синхронизации структуры данных реальных и тестовых. И к тому же добавляешь какую-нибудь штуку новую и придется все эти скрипты заново создавать.

И что с генерацией данных? Например тест сервиса регистрации пользователя и метод добавления пользователя в БД. Оба принимают entity Account и логично было бы его генерировать.
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39024546
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9,
не знаю, насколько у вас промышленные масштабы.
Обычно когда пишешь код. То по 100 раз на дню добавляешь сам данные.
Или у вас код вставки пишет один, а показ данных другой?
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39024596
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, Масштабы не промышленные но хотелось бы узнать как это делать более правильно.

авторОбычно когда пишешь код. То по 100 раз на дню добавляешь сам данные.

Просто на основе этих данных писать тесты не очень стабильное решение получится. Через месяц забудешь зачем добавлял, удалишь и тест лег.

авторИли у вас код вставки пишет один, а показ данных другой?

Да хотя бы и для себя, чтобы через месяц было понятно откуда ты взял эти данные для теста. А так получается они только в тесте существуют.
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39024619
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9,
бенератор
http://habrahabr.ru/post/169713/
Там внизу есть минусы твоих хотелок.
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39024696
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, видел эту штуку, как-то не очень понравилось. Лучше наверное в ручную добавить данные и не парится и просто сделать дамп на черный день.
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39024761
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9,
ну и сказал бы чем не понравилось. А то, увидел большое решение и испугался).
Понятно, что тестированием пусть тестировщики занимаются и админы.
А программисту некогда - ему писать надо).
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39024904
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9Atum1, а вы у себя тоже скриптом просто импортируете данные? Будет ведь проблема синхронизации структуры данных реальных и тестовых. И к тому же добавляешь какую-нибудь штуку новую и придется все эти скрипты заново создавать.

И что с генерацией данных? Например тест сервиса регистрации пользователя и метод добавления пользователя в БД. Оба принимают entity Account и логично было бы его генерировать.

с генерацией - junit тесты - пишите предтест , который создает в n потоков объекты и сохраняет их в вашу БД.
потом так же удаляете , либо перед каждым тестом либо после всех ...

и ничего создавать заново не нужно ...

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


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 @BeforeClass
    public static void setUpClass() {
    }
    
    @AfterClass
    public static void tearDownClass() {
    }
    
    @Before
    public void setUp() {
}

 @After
    public void tearDown() {
    }

    @Test
   public void test() {}
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39024963
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123ну и сказал бы чем не понравилось. А то, увидел большое решение и испугался).
А я и написал что мне наверное лучше будет создать данные в БД по умолчанию. И просто их не изменять, используя транзакции для отката. Так наверное проще всего тестировать методы работы с БД.

Вот только такое не прокатит когда нужно получить в цикле данные для проверки (по дате проверки), проверить их и изменить дату. Получится зацикливание поскольку изменения откатятся.

Atum1с генерацией - junit тесты - пишите предтест , который создает в n потоков объекты и сохраняет их в вашу БД.
потом так же удаляете , либо перед каждым тестом либо после всех ...

Да, так лучше получится чем в каждом методе создавать новые данные для теста. Пока вижу смысл в смешанном использовании данных по умолчанию и такого варианта.
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39024999
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9И просто их не изменять, используя транзакции для отката
да. Так не выйдет, т.к. тестируем не откат, а живую работу.
Если у заказчика есть уже заполненная БД, то просто берём его дамп на тестовый сервак или машину.
Если заказчик новый, то нужно тестировать _первый_ ввод сущности. Т.к. она может не ввестись при отсутствии FK (напр. валюты в спр. валют).
Так что при тестах - 2 вар-та, в зав-ти от продакшен БД.
Для нагрузочного - БД под завязку и нагрузку.
Объять необъятное вряд ли возможно.
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39027507
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, если по умолчанию нельзя добавить данные и потом их откатывать. То тогда вопрос как лучше добавлять такие данные. Понятно что перед тестом при помощи @Before можно инициализировать добавление. Но вопрос у меня в том а как это самое добавление делать. Через обычную вставку хибернейтом. Просто когда у таблиц много связей то эти все каскады надоест прописывать. Чтобы создать комментарий к примеру на этом форуме нужно создать пользователя, категорию, тему и комментарий.

В репозитории сделать метод создания тестового комментария наверное нельзя, поскольку DI я думаю не сработает. Придется делать отдельный слой (service) и в нем создавать тестовые данные. Еще есть вариант сделать фабрику тестовых данных. Но в этом всем есть проблема что постоянно при добавлении новых полей в БД тесты будут рушатся. По этому мне и интересно кто и как добавляет тестовые данные.

И чего в том же хибернете например не сделать чтобы анотациями в сущности указываешь шаблон для генерации и данные сами бы генерировались. Может что-то подобное есть и я не знаю просто об этом.
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39027548
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9,
Ты не путай unit тестирование и другие виды.
Комплексное тестирование вообще снаружи java идет.
При unit ты тестируешь кусок кода. А не БЛ.
У тебя наверно там просто ты один программист на все случаи в жизни.
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39027644
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, все равно ведь стоит вопрос добавления тестовых данных. Чтобы протестировать обновление комментариев то нужно сначала все эти каскады данных добавить.
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39027658
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9Чтобы протестировать обновление комментариев
давай конкретно.
- на чём тестить?
- какой код для тестов?
- тебе Atum1 дал ссылку - разобрал?
- твоя девелопер БД на твоей машине? В сети? Права на неё какие? Админские?
ЗЫ.
Ввод коммента на sql_ru это insert в одну таблу IMHO. Какой каскад?
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39027662
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9,
про теорию.
Какой именно тест тебе нужен? Т.к. тест выше модульного тут всего раз-два в году тема проскакивает.
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39028083
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор- твоя девелопер БД на твоей машине? В сети? Права на неё какие? Админские?
На моей машине с правами администратора.

автор- на чём тестить?
Я TestNG + Махито использую.

автор- какой код для тестов?
Берем с БД записи с датой обновления более N дней.
Проверяем через интернет значение (Махитой эмулирую).
Добавляем обновленное значение в БД и меняем дату.

автортебе Atum1 дал ссылку - разобрал?
Смотрел. Решение очень простое но если добавить ячейку в БД то тесты посыпятся.

авторВвод коммента на sql_ru это insert в одну таблу IMHO. Какой каскад?
Ну это потому что есть пользователь, раздел, тема. Но ты ведь когда будешь добавлять данные не факт что это будет, и нужно весь каскад данных добавлять.
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39028093
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторКакой именно тест тебе нужен? Т.к. тест выше модульного тут всего раз-два в году тема проскакивает.
Это больше похоже на модульный тест чем на интеграционный поскольку я махитой эмулирую работу другого модуля и остается обработка значений БД в цикле.
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39028127
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор не факт что это будет, и нужно весь каскад данных
@BeforeSuite?
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39028132
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перед unit тестом или любым другим должно быть создано окружение...вплоть до локали.
Методов валом:
- из кода @xxxx на java
- вне java ссылка выше
- батник/скрипт и дамп @impdb zzzzz
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39028141
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9, посмотри в сторону Liquibase
...
Рейтинг: 0 / 0
Генерация или добавление тестовых данных
    #39028164
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9,
http://jailer.sourceforge.net/
только не затягивай тесты дольше разработки))
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Генерация или добавление тестовых данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]