我的单元测试失败并显示以下消息:
&errors.errorString{s:"datastore: unsupported struct field type: sus.Version"}
我有一个测试结构类型,我试图将其保存到 GAE 数据存储:
type foo struct{
sus.Version
}
其中 sus.Version 是接口:
type Version interface{
GetVersion() int
getVersion() int
incrementVersion()
decrementVersion()
}
我尝试使用两个版本实现运行我的测试,首先它只是一个 int 的别名:
type version int
其次作为结构:
type version struct{
val int
}
在 Version 接口方法被赋予接收器类型的地方(v *version),它需要是一个指针,因此递减和递增实际上更新它们被调用的版本,而不仅仅是一个副本。我不确定为什么这不起作用,可能是因为它是一个匿名字段?或者也许是因为它是指向 int 或 struct 而不是实际的 int 或 struct 的指针?
富国沪深
相关分类