Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go:如何创建schema.ResourceData类型的实例,并使用值进行单元测试?_Go_Testing_Terraform - Fatal编程技术网

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