Go:如何创建schema.ResourceData类型的实例,并使用值进行单元测试?
我想为类似以下方法编写一个单元测试:Go:如何创建schema.ResourceData类型的实例,并使用值进行单元测试?,go,testing,terraform,Go,Testing,Terraform,我想为类似以下方法编写一个单元测试: package宾果 导入“github.com/hashicorp/terraform plugin sdk/helper/schema” func doStuff(d*schema.ResourceData)错误{ foo:=d.Get(“foo”)(字符串) //…使用d 归零 } 是否有方法创建包含值的schema.ResourceData类型的实例 我尝试创建ResourceData的“空白”实例,并通过.Set(…)填充它。但它不起作用,因为不存
package宾果
导入“github.com/hashicorp/terraform plugin sdk/helper/schema”
func doStuff(d*schema.ResourceData)错误{
foo:=d.Get(“foo”)(字符串)
//…使用d
归零
}
是否有方法创建包含值的schema.ResourceData类型的实例
我尝试创建ResourceData
的“空白”实例,并通过.Set(…)
填充它。但它不起作用,因为不存在模式:
package宾果
导入“github.com/hashicorp/terraform plugin sdk/helper/schema”
func TestDoStuff(t*testing.t){
d:=schema.ResourceData{}
错误:=d.Set(“foo”、“bar”)
如果错误!=零{
t、 Errorf(“未能设置值:%s”,错误)
//>设置值失败:要设置的地址无效:[]字符串{“foo”}
}
//试验剂量凝灰岩()
}
模式。TestResourceDataRaw
正是这样做的:
package宾果
导入“github.com/hashicorp/terraform plugin sdk/helper/schema”
var testSchema=map[string]*schema.schema{
“foo”:{Type:schema.TypeString}
}
func TestDoStuff(t*testing.t){
d:=schema.TestResourceDataRaw(t,testSchema,map[string]接口{
“foo”:“bar”,
})
错误:=doStuff(d)
如果错误!=零{
t、 失败()
}
}
感谢@mkopriva指出了内置的helper方法。Try对我来说非常有用!谢谢@mkopriva