返回顶部
首页 > 资讯 > 后端开发 > GO >Go:如何创建带有单元测试值的 schema.ResourceData 类型的实例?
  • 574
分享到

Go:如何创建带有单元测试值的 schema.ResourceData 类型的实例?

2024-04-04 23:04:05 574人浏览 独家记忆
摘要

学习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

猜你喜欢
  • Go:如何创建带有单元测试值的 schema.ResourceData 类型的实例?
    学习Golang要努力,但是不要急!今天的这篇文章《Go:如何创建带有单元测试值的 schema.ResourceData 类型的实例?》将会介绍到等等知识点,如果你想深入学习Golang,可以关注...
    99+
    2024-04-04
  • 为带有超时的单元测试创​​建一个deadlineExceededError:true
    php小编小新在这里为大家介绍一个有关单元测试的技巧:为带有超时的单元测试创建一个deadlineExceededError:true。在进行单元测试时,有时可能会遇到测试执行超时的情...
    99+
    2024-02-09
  • PHP 函数返回值的类型如何影响 PHPUnit 单元测试?
    php 函数返回值类型影响 phpunit 单元测试方式如下:声明返回值类型:使用 : 运算符指定函数返回值类型,如 get_name(): stringphpunit 断言验证:使用断...
    99+
    2024-04-15
    php 单元测试
  • 如何在go中实现CLI命令的单元测试
    小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《如何在go中实现CLI命令的单元测试》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,...
    99+
    2024-04-05
  • golang 对私有函数进行单元测试的实例
    在待测试的私有函数所在的包内,新建一个xx_test.go文件 书写方式如下: import ( "github.com/stretchr/testify/assert" "...
    99+
    2024-04-02
  • 如何为 Go 函数编写全面的单元测试
    在 go 中编写单元测试有助于确保代码质量和可靠性。单元测试包含导入依赖、设置对象、定义输入和输出、调用函数和断言输出等步骤。通过使用 testing 包中的断言函数,您可以比较实际输出...
    99+
    2024-05-02
    单元测试 go函数 golang
  • Golang如何实现单元测试中的逻辑层
    本篇内容介绍了“Golang如何实现单元测试中的逻辑层”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!准备工作安装 go insta...
    99+
    2023-07-05
  • Golang如何实现单元测试中的接口层
    这篇文章主要介绍“Golang如何实现单元测试中的接口层”,在日常操作中,相信很多人在Golang如何实现单元测试中的接口层问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Golang如何实现单元测试中的接口层...
    99+
    2023-07-05
  • ASP.NET Core单元测试中如何Mock HttpClient.GetStringAsync()的示例分析
    ASP.NET Core单元测试中如何Mock HttpClient.GetStringAsync()的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人...
    99+
    2024-04-02
  • 如何进行单元测试利器JUnit的实践与分析
    今天就跟大家聊聊有关如何进行单元测试利器JUnit的实践与分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。单元测试工具Junit是一个开源项目,昨天学习了一下这个东西,总结下心得。...
    99+
    2023-06-17
  • 如何理解Angular单元测试中事件触发的实现
    如何理解Angular单元测试中事件触发的实现,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。导读这篇文章主要介绍了Angular单元测试之事件触发的实现,文中通...
    99+
    2023-06-04
  • Golang开发经验分享:如何进行有效的单元测试
    Golang是一种由Google开发的开源编程语言,它因其高效的并发性能和简洁的语法而备受开发者青睐。在Golang开发中,单元测试是保证代码质量和稳定性的重要手段。本文将分享如何进行有效的Golang单元测试,帮助开发者提高代码的可靠性和...
    99+
    2023-11-22
    Golang 单元测试 开发经验
  • 如何创建具有所需类型而不是类型断言的变量
    编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天编程网就整理分享《如何创建具有所需类型而不是类型断...
    99+
    2024-04-04
  • 如何使用泛型 Go 实例化类型参数的非零指针?
    php小编西瓜将为您介绍如何在Go语言中使用泛型实例化类型参数的非零指针。在Go语言中,泛型是一种强大的特性,可以增加代码的灵活性和重用性。当我们需要在泛型函数或方法中实例化一个非零指...
    99+
    2024-02-11
    go语言 排列
  • 如何创建安装了 Go 实用程序的简单 Docker 容器
    php小编子墨为你介绍如何创建一个简单的 Docker 容器,并在其中安装 Go 实用程序。Docker 是一种流行的容器化平台,可以帮助开发人员将应用程序与其依赖项打包在一起,以便在...
    99+
    2024-02-11
  • Go语言strconv包如何实现字符串和数值类型的相互转换
    这篇文章将为大家详细讲解有关Go语言strconv包如何实现字符串和数值类型的相互转换,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在实际开发中我们往往需要对一些常用的数据类型进行转换,如 string、...
    99+
    2023-06-14
  • Go语言中的数据类型有哪些?如何实现同步操作?
    Go语言是一种开源的编程语言,它可以用于开发各种类型的应用程序,包括Web应用程序、移动应用程序、桌面应用程序等。在Go语言中,数据类型是非常重要的一个概念,它决定了程序的正确性和效率。本文将介绍Go语言中的数据类型以及如何实现同步操作。 ...
    99+
    2023-10-11
    数据类型 同步 数组
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作