1

我开始按照https://github.com/neo4jrb/neo4j/wiki/How-To-Test编写单元测试

其中一种方法真的很慢(每次测试 10 秒),另一种不会删除标签(可能还有其他东西)

任何人都可以提出更精细的方法吗?我注意到在核心 neo4j 材料中,java 文档描述 了创建和拆除临时数据库的方法,但我没有看到从(非常好的)ruby 和 rails neo4j gems 访问这些方法的方法。也许通过低级 REST api?很难弄清楚哪些 api 调用可用。

4

1 回答 1

1

因此,您可能可以将您的测试围绕在事务中,这是ActiveRecord在 Ruby 中进行测试的典型方法。这可能会更高效,但它也应该有助于保持数据库清洁。

但你是对的,无常数据库是 Neo4j 中提供的用于测试临时数据库的工具。不过,我认为这仅在您运行 JRuby 时可用。不过,我确实遇到了这个:

https://groups.google.com/forum/#!topic/neo4j/7xeEPWEiqD0

它链接到一个项目,该项目允许您以“内存”模式(使用无常数据库)启动 Neo4j 服务器:

https://github.com/jexp/neo4j-in-memory-server

这显示了 Neo4j 2.0.0 的示例,所以我不知道它是否适用于更高版本,但对于您的测试数据库可能值得一试。

编辑:我刚刚想到的另一件事是使用vcrgem:

https://github.com/vcr/vcr

它基本上记录了向您的服务器发出的所有请求,然后回放它们。这对于结果是幂等的 API 端点非常有用,但是如果您将它用于像 Neo4j 这样的数据库,您应该确保您的测试在每次测试运行之前都清除数据库,以便它总是重新开始

于 2015-04-06T07:14:28.827 回答