微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何用Java编写gremlin查询的单元测试?

如何解决如何用Java编写gremlin查询的单元测试?

例如连接到客户端:

val client = Cluster.open(MapConfiguration(config)).connect()

并执行查询

client.submitAsync(PreparedStatement.addUser,map).await().all().join()

PreparedStatement.addUser-gremlin字符串

问题是:如何对Java中的客户端查询进行单元测试。我想到了用inMemoryDB查询进行单元测试。我们可以作为客户端运行inMemoryDB,因为如果连接到内存DB时认返回traversal()?还是可以在traversal上执行gremlin查询字符串?

解决方法

如果将Gremlin字符串发送到Gremlin Server,则可以将测试视为集成测试,并且实际上可以使用配置的JanusGraph in-memory instance启动Gremlin Server实例。在某些情况下,根据需要测试的内容,TinkerGraph也可能满足要求。

如果您想要更多的纯单元测试,则必须进行一些模拟,但这会很复杂,因为其中涉及一些非公共类,并且类依赖关系很重要。我认为第一个问题将是ResultSet需要的ResultQueueClient类。我创建了这个问题TINKERPOP-2428

我认为基于字节码的请求比脚本具有更少的挑战性,因为您可以模拟RemoteConnection以返回自己的Traversal实例。甚至有EmbeddedRemoteConnection都可以让您定义一个本地GraphTraversalSource进行测试(如果这种情况适合您)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。