GO语言基础教程(196)Go编译与测试工具之go test命令:Go语言测试大法:让你的代码像金子一样可靠

第一部分:测试入门,没那么可怕

1.1 为什么测试很重要?

想象一下,你写了一个超级牛逼的Go程序,上线后却因为一个小小bug崩溃了。这感觉就像你精心准备了浪漫晚餐,结果发现忘记买主食——尴尬又致命!

测试就是你的安全网,让你在代码高空走钢丝时不怕摔死。而且Go的测试工具简单到令人发指,不学都对不起自己。

1.2 测试基础:文件与命名

在Go中,测试不是玄学,而是有一套简单规则的约定:

  • 测试文件:必须是_test.go结尾。比如你的代码在math.go,测试文件就应该是math_test.go。这规矩比男朋友记得纪念日还简单!
  • 测试函数:必须用Test开头,后面跟首字母大写的函数名。参数必须是t *testing.T。例如:
// 在math_test.go中
func TestAdd(t *testing.T) {
    result := Add(1, 2)
    if result != 3 {
        t.Errorf("期望3,得到%d", result)
    }
}

1.3 运行测试:简单到哭

是时候亮出我们的魔法咒语了:

go test

就这样?就这样!不加任何参数时,它会测试当前包,输出类似这样的结果:

ok      your/package    0.5s

想看看详细过程?加个-v参数:

go test -v

输出会变得话痨起来:

=== RUN   TestAdd
--- PASS: TestAdd (0.00s)
=== RUN   TestSubtract
--- PASS: TestSubtract (0.00s)
PASS
ok      your/package    0.5s

第二部分:实战进阶,测试也要玩出花

2.1 表驱动测试:懒人神器

如果你发现自己为同一个函数写了很多类似测试,像老妈子一样唠叨,那么表驱动测试就是你的救星!

表驱动测试就是把所有测试用例塞进一个"表格"里,然后用一个循环遍历执行。这概念比网红减肥食谱还简单:

func TestAddTableDriven(t *testing.T) {
    // 定义测试用例表格
    tests := []struct {
        name     string
        a        int
        b        int
        expected int
    }{
        {"正数相加", 2, 3, 5},
        {"零相加", 0, 0, 0},
        {"负数相加", -1, -1, -2},
        {"正负抵消",
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

值引力

持续创作,多谢支持!

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

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

打赏作者

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

抵扣说明:

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

余额充值