Go 进阶 · 分布式爬虫实战
郑建勋
Go 语言技术专家,《Go 语言底层原理剖析》作者
15839 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 58 讲
Go 进阶 · 分布式爬虫实战
15
15
1.0x
00:00/00:00
登录|注册

36|测试的艺术:依赖注入、表格测试与压力测试

你好,我是郑建勋。
对代码的功能与逻辑进行测试是项目开发中非常重要的一部分。这节课,我们一起来看几个在 Go 中进行代码测试的核心技术:单元测试、压力测试与基准测试。它们共同保证了代码的准确性、可靠性与高效性。

单元测试

单元测试又叫做模块测试,它会对程序模块(软件设计的最小单位)进行正确性检验,通常,单元测试是对一个函数封装起来的最小功能进行测试。
在 Go 中,testing 包为我们提供了测试的支持。进行代码测试需要将测试函数放置到 xxx_test.go 文件中,测试函数以 TestXxx 开头,其中 Xxx 是测试函数的名称,以大写字母开头。测试函数以 testing.T 类型的指针作为参数,你可以使用这一参数在测试中打印日志、报告测试结果,或者跳过指定测试。
func TestXxx(t *testing.T)
我们用下面这个简单的加法例子来说明一下。首先,在 add.go 文件中,写入一个 Add 函数实现简单的加法功能。
// add.go
package add
func Add(a,b int) int{
return a+b
}
接下来在 add_test.go 文件中,书写 TestAdd 测试函数,并将执行结果与预期进行对比。如果执行结果与预期相符,t.Log 打印日志。默认情况下测试是没问题的。但是如果执行结果与预期不符,t.Fatal 会报告测试失败。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Go语言中的代码测试技术是保证程序质量和性能的关键。本文介绍了单元测试、压力测试和基准测试等核心技术。通过testing包提供的支持,读者可以学习如何进行单元测试以验证程序模块的正确性,并掌握表格驱动测试的方法来提高测试效率。此外,文章还介绍了压力测试和基准测试的重要性,以及如何使用Shell脚本进行压力测试。通过实例,读者可以了解如何利用这些测试技术来确保代码的准确性、可靠性和高效性。另外,文章还涉及子测试的使用方法和依赖注入的技术,帮助读者更好地理解如何进行单元测试。总的来说,本文全面介绍了Go语言中多种测试技术,为读者提供了丰富的知识和技能,有助于他们提前发现系统存在的性能问题。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 进阶 · 分布式爬虫实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • 拾掇拾掇
    goland 会自动帮你建好表格测试
    2023-01-09归属地:浙江
    1
  • Yaney
    有没有推荐的代码自动生成工具呀,比如mockery
    2023-03-10归属地:浙江
  • 那时刻
    我了解的 reflect.DeepEqual 的缺点是不能比较不导出的key(小写key)。可以使用 `github.com/google/go-cmp`代替,这个库可以输出不一样的字段值,缺点是不能用于production,可以用于测试环境。
    2023-02-17归属地:北京
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部