Tony Bai · Go 语言第一课
Tony Bai
资深架构师,tonybai.com 博主
22709 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 61 讲
课程迭代 (2讲)
开篇词 (1讲)
结束语 (1讲)
Tony Bai · Go 语言第一课
15
15
1.0x
00:00/00:00
登录|注册

Go测试的5个实用建议

你好,我是 Tony Bai。
在《Go 语言第一课专栏中,缺少专门讲解 Go 测试的章节,这无疑是一个遗憾。在工程实践中,针对代码的测试是确保代码执行逻辑正确和代码质量的重要手段。所以,Go 测试内容的空缺可能会让一些小伙伴在学习和实践过程中感到困惑。
为了解决这个问题,我决定用一篇加餐详细补充说明。我将带你快速入门 Go 测试的基本知识点,并针对实际开发中的 Go 测试实践提供几点实用建议。这不仅仅是一篇加餐,更是帮助你完善 Go 语言知识体系的重要一环。

Go 测试快速入门

Go 语言内置了一个轻量级的测试框架,该框架通过 go test 命令和标准库的 testing 包来提供测试功能。
Go 测试框架要求所有 Go 测试代码都要放在以 _test.go 结尾的测试源文件中。Go 测试被抽象为一个个测试函数,测试源文件中的测试函数必须以 Test 开头,并且接受一个名为 testing.T 的参数,比如下面示例代码中的 TestAdd 函数:
// go-testing/add/add_test.go
package add
import (
"testing"
)
func TestAdd(t *testing.T) {
got := Add(2, 3)
want := 5
if got != want {
t.Errorf("want %d, but got %d", want, got)
}
}
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. Go语言内置了轻量级的测试框架,通过go test命令和标准库的testing包提供测试功能,测试代码需放在以_test.go结尾的测试源文件中。 2. Go测试框架要求测试函数以Test开头,并接受一个名为testing.T的参数,测试函数中通常使用断言来比较实际结果与预期结果,验证代码行为是否符合预期。 3. 使用测试覆盖率发现未经测试的代码是日常开发中的重要实践,Go语言的go test命令原生支持计算测试覆盖率,并可生成包含测试覆盖率信息的报告。 4. 将子测试视为Test Case,通过使用Go语言的子测试(subtest)可以将一个测试函数分成多个小测试函数,每个小测试函数可以独立运行并报告测试结果,有助于更好地隔离测试用例,实现更细粒度地控制测试执行。 5. 使用Fake Object解决依赖外部系统的测试是实际测试中的重要实践,Fake Object是被测代码(System Under Test,SUT)依赖的外部协作者的“替身”,它的行为更像真正的协作者,可以给开发人员更多的信心。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Tony Bai · Go 语言第一课》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部