【问题标题】:How to write unit test for these type of methods? [closed]如何为这些类型的方法编写单元测试? [关闭]
【发布时间】:2020-04-11 08:38:07
【问题描述】:

我是单元测试新手。如何为这些类型的方法编写单元测试?

 private boolean fn(Vertex vertex) {
        return vertex.id().toString().split(":").length > 1;
    }

这里的 Vertex 是 gremlin query 的元素。 我试图创建图形实例并将一个新的 Vertex 对象传递给函数但不工作。 即

Vertex vertex = (Vertex) graphTraversalSource.addV("Test").property(id,"Profile:TEST");

谁能建议测试这些类型的方法的方法?

【问题讨论】:

标签: java unit-testing mockito gremlin


【解决方案1】:

你问过关于“单元测试”的问题,但你的问题似乎是关于为什么:

Vertex vertex = (Vertex) graphTraversalSource.addV("Test").property(id,"Profile:TEST");

不允许您创建可以测试的Vertex。我想说最明显的问题是你没有以任何方式iterate your traversal。在这种情况下,您需要致电next()

Vertex vertex = (Vertex) graphTraversalSource.addV("Test").property(id,"Profile:TEST").next();

当然,对于您要测试的 fn(Vertex) 函数,我认为在图形数据库中创建实际的 Vertex 没有多大意义 - 您可以改为使用 org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex 并执行以下操作:

Vertex vertex = new DetachedVertex("Profile:TEST", "Test", null);

然后将其传递给您的函数进行测试。

【讨论】:

  • "Vertex vertex = new DetachedVertex("Profile:TEST", "Test"); " .这只有受保护的访问,那么如何使用呢? @斯蒂芬·马莱特
  • 对不起 - 第三个参数是null
  • 你的这种语法是如何工作的? “Vertex”和“DetachedVertex”是两种不同类型的对象。
  • Vertex 是一个 Java 接口,DetachedVertex 实现了它:tinkerpop.apache.org/javadocs/current/full/org/apache/tinkerpop/…
猜你喜欢
  • 1970-01-01
  • 2018-03-13
  • 2018-05-17
  • 1970-01-01
  • 1970-01-01
  • 2019-12-22
  • 1970-01-01
  • 2021-06-23
  • 2019-02-15
相关资源
最近更新 更多