学习golang要努力,但是不要急!今天的这篇文章《Go:如何创建带有单元测试值的 schema.ResourceData 类型的实例?》将会介绍到等等知识点,如果你想深入学习Golang,可以关注
学习golang要努力,但是不要急!今天的这篇文章《Go:如何创建带有单元测试值的 schema.ResourceData 类型的实例?》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!
问题内容我想为与此类似的方法编写单元测试:
package bingo
import "GitHub.com/hashicorp/terrafORM-plugin-sdk/helper/schema"
func dostuff(d *schema.resourcedata) error {
foo := d.get("foo").(string)
// ... operations using d
return nil
}
有没有办法创建一个包含值的 schema.resourcedata
类型的实例?
我尝试创建 resourcedata
的“空白”实例,并通过 .set(...)
填充它。但它不起作用,因为不存在架构:
package bingo
import "github.com/hashicorp/terraform-plugin-sdk/helper/schema"
func TestDoStuff(t *testing.T) {
d := schema.ResourceData{}
err := d.Set("foo", "bar")
if err != nil {
t.Errorf("failed to set value: %s", err)
// > failed to set value: Invalid address to set: []string{"foo"}
}
// test doStuff()
}
schema.testresourcedataraw
正是这样做的:
package bingo
import "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]interface{
"foo": "bar",
})
err := doStuff(d)
if err != nil {
t.Fail()
}
}
Link to the documentation
感谢 @mkopriva 指出内置的帮助器方法。
以上就是《Go:如何创建带有单元测试值的 schema.ResourceData 类型的实例?》的详细内容,更多关于的资料请关注编程网公众号!
--结束END--
本文标题: Go:如何创建带有单元测试值的 schema.ResourceData 类型的实例?
本文链接: https://lsjlt.com/news/596385.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-04-05
2024-04-05
2024-04-05
2024-04-04
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0