关于java:postgres数据库的自动化测试

Automation testing for postgres database

我正在测试这个在postgres中创建数据库/表的api。 对于自动化测试,我正在思考,有一个设置方法,创建一个包含表设置的数据库,并填充所需的数据(1000个条目/行)。

我在考虑这样做的优雅方式? 除了编写循环超过1000次的代码并将存储在csv中的数据写入postgres表之外的任何想法?


如果你真的更喜欢使用postgresql(而不是H2)进行测试,你可以使用liquibase。它是一个数据库模式管理工具,支持(以及其他)从csv批量加载数据(http://www.liquibase.org/documentation/changes/load_data.html)。

如果您的应用程序使用它,它还提供spring集成。


老实说,CSV,XML或任何其他结构化格式对我来说似乎都很好。有没有理由你不想这样做?使用pg_dump命令从现有数据库导出数据并使用pg_restore也是一个不错的选择。

关于编写代码来生成数据的另一个想法也不错。编写代码的好处是您的测试没有耦合到数据文件。

另外,我会看看H2数据库,因为它具有PostgreSQL兼容模式,你可以将它实际嵌入到单元/集成测试中,而不是依赖于在测试中设置和配置的PostgreSQL服务器。我们使用H2来测试我们的PostgreSQL应用程序,它运行良好。缺点是你不能100%肯定,因为你的测试通过H2反对PostgreSQL。