测试日志显示以下错误
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)
是。如果产生对象的代码(无论生成rows
为何)引用相同库的其他副本,则类型将不匹配-例如,如果您引用的库foo
(已将graph
出售),它将引用其出售版本,当您引用自己的版本时。也可能有两个完全不同的包(不同的导入路径),它们都名为graph
,但我假设您已经排除了这一点。
在这种情况下,应该清除哪些文件夹?
不幸的是,它并不是那么简单-您需要仔细查看依赖项。如果要将项目作为库导入,并且供应有其自己的依赖项,那么您将会遇到麻烦。这就是为什么对库中的供应商依赖项(最好只为二进制文件提供依赖项)是一种不好的做法。
[恢复]是什么意思?
这意味着panic
是recovered。测试库完成此操作,以在测试引起紧急情况时返回准确的测试结果。
关于go - 转到-接口(interface)转换[已恢复]-错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45864962/