У меня есть существующее приложение Grails/MongoDB, в которое я добавляю несколько автоматических тестов. Я хочу, чтобы эти тесты выполнялись для определенного набора данных в коллекции Mongo. Я хочу, чтобы тесты могли искажать данные (с предсказуемыми результатами, если мне повезет), а затем иметь возможность быстро удалить и воссоздать/перезагрузить базу данных, чтобы я мог снова запустить тест.
Поскольку я собираюсь основывать эти начальные тестовые данные на реальных данных из нашей производственной системы, я хотел бы иметь возможность загружать данные из формата JSON/BSON, которые я мог бы получить из запроса в оболочке Mongo или что-то в этом роде. похожий.
По сути, я не хочу писать сотню строк кода, например: new Record(name: 'John Doe', age: '25', FavoriteColor: 'blue').save()
За исключением 30 свойств в каждом, при этом гарантируя соблюдение ограничений и реалистичность данных. Вот почему я хочу использовать производственные данные.
Я также не хочу прибегать к порождающим исполнителям, которые запускают mongorestore для загрузки и перезагрузки реальных данных, так как это потребует запуска дополнительного программного обеспечения на машине тестера.
Есть ли способ лучше? Возможно, каким-то образом преобразовать необработанный JSON во что-то, что я смогу затем выполнить с помощью Grails MongoDB GORM или GMongo или прямого вызова драйвера Java MongoDB?