Unit testing 在Neo4j中恢复单元测试的测试数据库
我想针对预填充的Neo4j数据库对CRUD操作进行单元测试 我认为这样做的一个方法可能是:Unit testing 在Neo4j中恢复单元测试的测试数据库,unit-testing,neo4j,Unit Testing,Neo4j,我想针对预填充的Neo4j数据库对CRUD操作进行单元测试 我认为这样做的一个方法可能是: 创建一个空数据库(我们称之为testDB) 创建数据库备份(我们称之为testingBackup) 在运行测试时: 从testDB 从testingBackup 在现在填充的testDB上运行单元测试查询 我知道备份/恢复功能、加载/转储功能以及从csv导出到csv/load等。但是,我不确定哪一项最适合使用,也最容易实现自动化。我在Ubuntu上使用python 随着应用程序的发展,我需要能够快
- 创建一个空数据库(我们称之为
)testDB
- 创建数据库备份(我们称之为
)testingBackup
- 在运行测试时:
- 从
testDB
- 从
testingBackup
- 在现在填充的
testDB上运行单元测试查询
- 从
请问最好的方法是什么?我有一些类似的东西,但有一些警告。我使用Java和testcontainers做过类似的测试。另外,我没有使用neo4j。我在测试中使用了postgress、sqlserver和mongodb。对neo4j使用相同的技术应该与其中一种类似。我将发布mongodb/springboot/java的github示例链接。看一看 其思想是从测试中旋转一个testcontainer(即,用于测试的docker容器),用数据填充它,使应用程序将其用于数据库,然后在最后断言 在您的示例中,没有testingbackup。仅包含数据的csv文件 -您的测试使用测试中的neo4j启动一个testcontainer(这是您的testdb) -将csv加载到此容器中 -获取testcontainer的ip、端口、用户和密码(这部分取决于testcontainer可用的数据库映像类型。有些映像允许您设置自己的端口、用户ID和密码。有些映像不允许。) -将这些详细信息传递给您的应用程序并启动它(我不确定这一部分在python应用程序中如何工作。这是您自己的部分。请参阅下面我为python/testcontainer示例找到的博客链接。我使用了spring boot应用程序。您可以在github中查看我的代码) -完成后,执行对容器化neo4j和assert的查询 -当测试结束时,容器与数据一起被丢弃 -对csv文件进行任何更改都可以为您的测试创建新的场景 -根据需要创建另一个csv文件/测试 这里是链接 test4j模块 详细介绍testcontainers和python的博客。 我的github链接到mongodb/springboot和sqlserver/springboot示例。 总有一天我也会添加一个neo4j样本。
谢谢,我来看看。