【问题标题】:how to write junit test for janusgraph如何为janusgraph编写junit测试
【发布时间】: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


【解决方案1】:

为了模拟流畅的 API,用于创建模拟的 java Mockito 类具有称为“深度存根”的功能。 https://www.baeldung.com/mockito-fluent-apis 上提供了很好的解释

【讨论】:

    猜你喜欢
    • 2021-02-03
    • 1970-01-01
    • 2022-11-03
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多