Go 哥朗结构单元试验
我使用VSCode生成项目的测试文件 当前,它生成以下结构Go 哥朗结构单元试验,go,Go,我使用VSCode生成项目的测试文件 当前,它生成以下结构 tests := []struct { name string args args wantOut ZTR }{ name: "test123", args: args{ ztrFile: "./testdata/ztrfile.yaml", }, wantOut: “ZTR.Mod
tests := []struct {
name string
args args
wantOut ZTR
}{
name: "test123",
args: args{
ztrFile: "./testdata/ztrfile.yaml",
},
wantOut: “ZTR.Modules",
}
测试应该包括yaml的解析和属性测试
这里它调用解析文件
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotOut := parseFile(tt.args.ztrFile); !reflect.DeepEqual(gotOut, tt.wantOut) {
t.Errorf("parseFile() = %v, want %v", gotOut, tt.wantOut)
}
})
这是结构
type Modules struct {
Name string
Type string
cwd string `yaml:”cwd,omitempty"`
}
我不确定我需要在这里放些什么来让它工作,我试着玩类型,但我得到了错误
{
name: "test123",
args: args{
mtaFile: "./testdata/ztrfile.yaml",
},
wantOut: “ZTR.Modules",
}
我犯的错误是
消息:“不能将“test123”(类型字符串)用作数组或切片文本中的类型结构{name string;args args;wantOut ZTR}”
在:'41,3'
来源:“”
代码:“未定义”您的
测试声明不正确。您需要提供一个结构片,但只提供键/值:
tests := []struct {
name string
args args
wantOut ZTR
}{
name: "test123",
args: args{
mtaFile: "./testdata/ztrfile.yaml",
},
wantOut: “ZTR.Modules",
}
应该是:
tests := []struct {
name string
args args
wantOut ZTR
}{
{
name: "test123",
args: args{
mtaFile: "./testdata/ztrfile.yaml",
},
wantOut: “ZTR.Modules",
},
}
哪一行是您的源代码的第41行?@Flimzy-名称:“test123”
,我在wantOut上也出现了错误:“ZTR.Modules”,
您缺少了一些大括号。请记住,您在结构片中为其提供了条目。非常感谢这解决了问题,最后一个问题现在我在wantOut
中出现了错误,我应该在那里放什么?例如,如果模块的名称应类似name=“just name”
type=“justType”
I usderstad这就是我想要验证的预期的但是我应该如何将其放在那里?在不知道错误是什么的情况下很难回答您的问题。如果我需要验证结构解析的输出,我应该如何将其放在那里,当我放置wantOut:Modules,
I Get errortyp时,任何示例都会有所帮助e模块不是表达式