测试日志显示以下错误

row 0 - got data of type graph.Node but wanted graph.Node
--- FAIL: TestAlls (0.84s)
panic: interface conversion: interface {} is graph.Node, not graph.Node [recovered]
    panic: interface conversion: interface {} is graph.Node, not graph.Node

从以下代码
nnn = graph.Node{}
nnn, ok = row[0].(graph.Node)
if !ok {
  log.Printf("row 0 - got data of type %T but wanted graph.Node", nnn)
}
neo4jNode := row[0].(graph.Node)
  • 是否可能有两个具有相同名称的不同类型? (graph.Node)
  • 在这种情况下,应该清除哪些文件夹?
  • [恢复]是什么意思?

  • 我正在使用滑行安装,清洁,构建,测试。

    最佳答案

    是否可能有两个具有相同名称的不同类型? (graph.Node)

    是。如果产生对象的代码(无论生成rows为何)引用相同库的其他副本,则类型将不匹配-例如,如果您引用的库foo(已将graph出售),它将引用其出售版本,当您引用自己的版本时。也可能有两个完全不同的包(不同的导入路径),它们都名为graph,但我假设您已经排除了这一点。

    在这种情况下,应该清除哪些文件夹?

    不幸的是,它并不是那么简单-您需要仔细查看依赖项。如果要将项目作为库导入,并且供应有其自己的依赖项,那么您将会遇到麻烦。这就是为什么对库中的供应商依赖项(最好只为二进制文件提供依赖项)是一种不好的做法。

    [恢复]是什么意思?

    这意味着panicrecovered。测试库完成此操作,以在测试引起紧急情况时返回准确的测试结果。

    关于go - 转到-接口(interface)转换[已恢复]-错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45864962/

    10-13 08:55