GO语言基础教程(197)go test命令之单元测试:Go语言测试全攻略:从零编写你的第一个“不翻车”单元测试

周五晚上,一杯茶,一段看似无懈可击的代码——直到它在生产环境崩溃。Go语言的测试工具链正是为了避免这种噩梦而设计。

本文涉及的知识点实时计算 Flink 版,5000CU*H 3个月

智能开放搜索 OpenSearch,行业算法版,1GB 20LCU 1个月

实时数仓Hologres,5000CU*H 100GB 3个月

前言:为什么你的代码需要“安全带”?

典型的周五晚上,你已经放松下来,喝着一杯茶。但这时,DevOps同事发来了应用程序错误截图的消息。经过紧张的排查,终于找到了那行让所有人都无法安心生活的代码。我不希望经常遇到这种情况,也不希望未来再受同样的折磨。单元测试就是代码的“安全带”——尽管开发时可能觉得是负担,但关键时刻它能防止严重事故。

一、Go测试入门:简单到无法拒绝

Go语言将测试作为一等公民,内置了强大的测试支持。毫不夸张地说,Go让测试变得如此简单,几乎找不到不写测试的借口。

1.1 核心命令:go test

Go测试工具链的核心是go test命令。它是一个依据特定约定来组织和驱动测试的程序。当你在一个包目录中执行go test时,它会自动寻找并执行所有符合测试规范的用例。

1.2 测试文件的约定

go test遵循简单的命名约定:

  • 文件名:所有以_test.go为后缀的源文件都会被识别为测试文件
  • 构建排除go build会忽略这些_test.go文件,不会增加最终可执行文件的大小

1.3 测试函数的类型

_test.go文件中,主要包含以下几种测试函数:

  • 功能测试:函数名以Test开头,如TestMyFunction
  • 性能测试:函数名以Benchmark开头,如BenchmarkMyFunction
  • 示例测试:函数名以Example开头,用于生成示例文档
  • 模糊测试:以Fuzz开头,用于自动化边界测试(Go 1.18+)

二、编写你的第一个单元测试

让我们通过一个具体例子,一步步创建你的第一个“不翻车”测试。

2.1 准备被测试的代码

首先,创建add.go文件,定义一个简单的加法函数:

package main

func Add(a, b int) int {
    return a + b
}

2.2 创

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值