我有一个现有的 Grails/MongoDB 应用程序,我正在向其中添加一些自动化测试。我希望针对 Mongo 集合中的一组特定数据执行这些测试。我希望测试能够破坏数据(如果幸运的话,结果可预测),然后能够快速删除并重新创建/重新加载数据库,以便我可以再次运行测试。
由于我打算将此种子测试数据基于我们生产系统中的真实数据,因此我希望能够从 JSON/BSON 格式加载数据,我可以从 Mongo shell 中的查询或其他东西中检索这些数据相似的。
基本上我不想写一百行代码,如下所示: new Record(name: 'John Doe', age: '25', favoriteColor: 'blue').save()
除了每个属性有 30 个之外,始终确保满足约束条件并且数据是真实的。这就是我想使用生产数据的原因。
我也不想求助于运行 mongorestore 的生成 exec 来加载和重新加载真实数据,因为这需要在测试者的机器上运行额外的软件。
有没有更好的办法?也许以某种方式将原始 JSON 解组为我可以使用 Grails MongoDB GORM 或 GMongo 执行的东西,或者直接调用 Java MongoDB 驱动程序?