golang单测

news/2024/7/23 21:11:23 标签: golang, git, 开发语言

goland自动生成

  1. 鼠标移动到函数名处右击鼠标
  2. 点击:生成
  3. 点击:函数测试
func TestGetFieldIds(t *testing.T) {
    type args struct {
       fieldIdsStr string
    }
    tests := []struct {
       name       string
       args       args
       wantResult []uint
    }{
       // TODO: Add test cases.
    }
    for _, tt := range tests {
       t.Run(tt.name, func(t *testing.T) {
          if gotResult := GetFieldIds(tt.args.fieldIdsStr); !reflect.DeepEqual(gotResult, tt.wantResult) {
             t.Errorf("GetFieldIds() = %v, want %v", gotResult, tt.wantResult)
          }
       })
    }
}

由于goland自动生成的测试函数使用了反射,但是大多数情况下是不使用的,使用断言这种方式,所以就用了下面的Testify。

Testify

Testify是一个功能强大且易于使用的测试工具包,提供了丰富的断言方法和辅助函数。它扩展了Go的内置testing包,使测试编写更简洁、可读性更高。
导入库:go get github.com/stretchr/testify/assert

func TestGetFieldIds(t *testing.T) {
    testCases := []struct {
       input    string
       expected []uint
    }{
       {input: "1,2,3,4,5", expected: []uint{1, 2, 3, 4, 5}},
       {input: "10,20,30", expected: []uint{10, 20, 30}},
       {input: "100,200,300,400", expected: []uint{100, 200, 300, 400}},
       // Add more test cases as needed
    }
    for _, tc := range testCases {
       result := GetFieldIds(tc.input)
       assert.Equal(t, tc.expected, result, "GetFieldIds result should match expected")
    }
}


http://www.niftyadmin.cn/n/5278231.html

相关文章

Sirius:一款功能强大的通用漏洞扫描工具

关于Sirius Sirius是一款功能强大的通用漏洞扫描工具,该工具可以帮助广大研究人员在大多数场景下识别和验证应用程序中存在的安全漏洞。 现如今,信息安全社区仍然是收集网络安全情报数据最佳且最有利的来源,而且社区本身的表现经常会优于商…

Java学习正则表达式

正则表达式:一些具有特殊含义字符的集合。 它指定了字符串的匹配规则 使用String类的matches(String regex)方法判断字符串是否匹配指定的正则表达式。 public boolean matches( String regex ) 比如: String s"lxxhdpu163.com"; boolean b…

【自用】Ubuntu20.4从Vivado到ddr200t运行HelloWorld

【自用】Ubuntu20.4新系统从输入法到ddr200t运行HelloWorld 一、编辑bashrc二、Vivado2022.2安装三、编译蜂鸟E203自测样例1. 环境准备2. 下载e203_hbirdv2工程文件3. 尝试编译自测案例1. 安装RISC-V GNU工具链2. 编译测试样例 4. 用vivado为FPGA生成mcs文件1.准备RTL2.生成bit…

IOS开发问题记录

1. xcode上传app store connect后testflight没有可构建版本的原因 查看你的邮箱, 里面有原因提示 一般为使用了某些权限, 但是plist没有声明 2. xcode 修改display name后名字并没有改变 原因是并没有修改到plist的CFBundleDisplayName的字段 将CFBundleDisplayName的值修改…

springboot项目0-1之mybatis

文章目录 概述优缺点优点缺点 配置引入安装包资源配置基于YAML格式来进行配置基于xml配置文件配置基于注解进行配置 mapper与xml严格匹配 基础操作 一文弄懂mybatis 概述 Apache下的一个开源项目 用于操作数据库 基于java语言的持久层框架,通过XML描述符或注解将对…

Electron Vite打包后,部分图标未显示的解决方案

背景 这个问题,弄了一晚上,头都大了,找了一堆博客也没解决。主要参考这个:https://blog.csdn.net/m0_73845616/article/details/129741099。 下面讲一下我的解决方案。 解决方案 上面链接里的方法,我采用第二、三个都…

【大数据面试】MySQL面试题与答案

数据库中的事务是什么,MySQL中是怎么实现的 MySQL事务的特性? 数据库事务的隔离级别?解决了什么问题?默认事务隔离级别? 脏读,幻读,不可重复读的定义 MySQL怎么实现可重复读? 数据库第三范式和第四范式区别? MySQL的存储引擎? …

mac电脑m1 arm架构安装虚拟机教程

1、准备一台虚拟机,安装CentOS7 常用的虚拟化软件有两种: VirtualBoxVMware 这里我们使用VirtualBox来安装虚拟机,下载地址:Downloads – Oracle VM VirtualBox 001 点击安装 002 报错:he installer has detected an…