2016-09-19 73 views
0

我想测试一个Postgres数据库再执行查询的后端。据我了解嘲笑postgres是不可能的(而不是MongoDB),并且应该查询一个真正的数据库。postgres在后端测试策略

所以我的第一个问题是,测试postgres查询的标准策略是什么?

现在,我试图重新创建一个没有数据的数据库,这样我就可以为每个测试插入信息并完全控制输出。但是,目前尚不清楚如何做到这一点。到目前为止,我已经拿出类似的东西:

pg_dump mydb --schema-only | pg_restore testdb 

然而,它真的很慢。我想其中一个原因是,如果测试客户端与数据库不在同一个网络中,那么pg_dump必须通过网络获取所有信息,然后才能将其发送回同一台计算机。

我想我正在寻找将类似于

Create new database testdb with template mydb 

只复制架构信息并没有强制关闭所有连接。

+0

对此没有单一的“标准”答案。这一切都取决于你需要测试什么:业务逻辑,查询,结构,性能等。有一些你可能会感兴趣的框架:http://pgtap.org/,https://pypi.python.org/pypi /testing.postgresql/,https://github.com/mixerp/plpgunit等。我已经使用NodeJS Mocha,Chai和Lodash构建了自己的简单框架,并且我有预定义的结构 - 不从现有数据库获取模式结构,但这是特定于我的需求和使用情况。 –

回答

0

我认为你对模板数据库的想法是最好的。

为什么不创建一个与mydb相同的模板数据库,只有没有数据?如果您的问题是mydb经常发生模式更改,请使用将所有模式更改应用于mydb和模板数据库的部署技术。