【发布时间】:2022-11-04 00:06:22
【问题描述】:
通常,我们在使用 java 编写时使用一些集群作为 db 来摄取和获取 janusgraph 的数据。来到 junit 测试我试图根据需要模拟变量
@Mock
GraphTraversalSource g;
@Mock
GraphTraversal<Vertex, Map<String, Object>> traversal;
@Mock
GraphTraversal<Vertex, Vertex> traversal1;
但是当我返回时它给出了空指针异常,我什至尝试添加数据,例如:
g.addV("jobRole").property(single,"jobCode","xyz").property(single,"vLabel", "JobRole");
结果仍然为空
GraphTraversal<Vertex, Vertex> traversal =
graphSource.V().has("vLabel", "JobRole").has("jobCode", JOBCODE);
Vertex JobRole = traversal.hasNext()
? traversal.next()
: graphSource.addV("JobRole").property(
VertexProperty.Cardinality.single, "jobCode", JOBCODE).next();
graphSource.V(JobRole).property(
VertexProperty.Cardinality.single, "vLabel", "JobRole").next();
我需要嘲笑这个。
我应该通过创建一个虚拟内存来添加所有数据还是我能做什么,我如何模拟上面给定的带有属性的顶点?
【问题讨论】:
-
你想要一个通过 GraphTraversal API 测试使用 JanusGraph 的代码的单元测试吗?然后你必须指示你的遍历模拟实例如何表现,参见例如vogella.com/tutorials/Mockito/article.html 将返回值添加到模拟对象。
-
graphSource.V().has("vLabel", "JobRole").has("jobCode", JOBCODE);这是查询,即使我模拟(vertex.class)它作为空指针异常抛出,我如何在不连接到服务器的情况下向它返回一个顶点
标签: gremlin janusgraph gremlin-server