Go语言核心36讲
郝林
《Go并发编程实战》作者,前轻松筹大数据负责人
立即订阅
24139 人已学习
课程目录
已完结 54 讲
0/4登录后,你可以任选4讲全文学习。
开篇词+学习路线 (3讲)
开篇词 | 跟着学,你也能成为Go语言高手
免费
预习篇 | 写给0基础入门的Go语言学习者
50 | 学习专栏的正确姿势
模块一:Go语言基础知识 (6讲)
01 | 工作区和GOPATH
02 | 命令源码文件
03 | 库源码文件
04 | 程序实体的那些事儿(上)
05 | 程序实体的那些事儿(中)
06 | 程序实体的那些事儿 (下)
模块二:Go语言进阶技术 (16讲)
07 | 数组和切片
08 | container包中的那些容器
09 | 字典的操作和约束
10 | 通道的基本操作
11 | 通道的高级玩法
12 | 使用函数的正确姿势
13 | 结构体及其方法的使用法门
14 | 接口类型的合理运用
15 | 关于指针的有限操作
16 | go语句及其执行规则(上)
17 | go语句及其执行规则(下)
18 | if语句、for语句和switch语句
19 | 错误处理(上)
20 | 错误处理 (下)
21 | panic函数、recover函数以及defer语句 (上)
22 | panic函数、recover函数以及defer语句(下)
模块三:Go语言实战与应用 (27讲)
23 | 测试的基本规则和流程 (上)
24 | 测试的基本规则和流程(下)
25 | 更多的测试手法
26 | sync.Mutex与sync.RWMutex
27 | 条件变量sync.Cond (上)
28 | 条件变量sync.Cond (下)
29 | 原子操作(上)
30 | 原子操作(下)
31 | sync.WaitGroup和sync.Once
32 | context.Context类型
33 | 临时对象池sync.Pool
34 | 并发安全字典sync.Map (上)
35 | 并发安全字典sync.Map (下)
36 | unicode与字符编码
37 | strings包与字符串操作
38 | bytes包与字节串操作(上)
39 | bytes包与字节串操作(下)
40 | io包中的接口和工具 (上)
41 | io包中的接口和工具 (下)
42 | bufio包中的数据类型 (上)
43 | bufio包中的数据类型(下)
44 | 使用os包中的API (上)
45 | 使用os包中的API (下)
46 | 访问网络服务
47 | 基于HTTP协议的网络服务
48 | 程序性能分析基础(上)
49 | 程序性能分析基础(下)
尾声与思考题答案 (2讲)
尾声 | 愿你披荆斩棘,所向无敌
新年彩蛋 | 完整版思考题答案
Go语言核心36讲
登录|注册

23 | 测试的基本规则和流程 (上)

郝林 2018-10-03
你好,我是郝林,今天我分享的主题是:测试的基本规则和流程(上)。
你很棒,已经学完了本专栏最大的一个模块!这涉及了 Go 语言的所有内建数据类型,以及非常有特色的那些流程和语句。
你已经完全可以去独立编写各种各样的 Go 程序了。如果忘了什么,回到之前的文章再复习一下就好了。
在接下来的日子里,我将带你去学习在 Go 语言编程进阶的道路上,必须掌握的附加知识,比如:Go 程序测试、程序监测,以及 Go 语言标准库中各种常用代码包的正确用法。
从上个世纪到今日今时,程序员们,尤其是国内的程序员们,都对编写程序乐此不疲,甚至废寝忘食(比如我自己就是一个例子)。
因为这是我们普通人训练自我、改变生活、甚至改变世界的一种特有的途径。不过,同样是程序,我们却往往对编写用于测试的程序敬而远之。这是为什么呢?
我个人感觉,从人的本性来讲,我们都或多或少会否定“对自我的否定”。我们不愿意看到我们编写的程序有 Bug(即程序错误或缺陷),尤其是刚刚倾注心血编写的,并且信心满满交付的程序。
不过,我想说的是,人是否会进步以及进步得有多快,依赖的恰恰就是对自我的否定,这包括否定的深刻与否,以及否定自我的频率如何。这其实就是“不破不立”这个词表达的含义。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Go语言核心36讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(10)

  • Howard.Wundt
    在 The Go Programming Language 中,Testing 是第十一章,已经接近书的结尾了。
    本节课末尾的思考题,经过 google 得知:
    testing.T 的部分功能有(判定失败接口,打印信息接口)
    testing.B 拥有testing.T 的全部接口,同时还可以统计内存消耗,指定并行数目和操作计时器等。
    2018-10-03
    15
  • y
    那是否可以一次发两篇呢?
    2018-10-05
    3
  • dean不闷
    老师,能推荐一下go的测试框架吗?我们想做单元测试/分层测试。十分感谢!

    作者回复: Go语言自带的就很好啊,一般不需要其他框架。如果非要用一个的话,testify不错。

    2019-03-12
    1
  • 窗外
    老师,我为什么执行实例下的demo52,demo52_test.go的测试命令go test demo52_test.go,会提示
    .\demo52_test.go:10:19: undefined: hello
    hello和introduce在demo52的源码文件里都有声明的呢?
    另外你文中说的TestIntroduce为什么不会被执行呢?我看了实例52,函数声明都是一致的

    作者回复: 你要是指定文件,就指定全:go test demo52.go demo52_test.go 。要么你就直接在那个目录下执行 go test ,不追加任何文件。


    只要 TestIntroduce 函数签名完全匹配了规则就没问题。文中的这块或许可以改一下。

    2019-07-18
  • benying
    主要是懒得弄测试用例吧,构建测试用例还是挺费时间的,如果想完备的话。打卡,20190606
    2019-06-06
  • dean不闷
    老市区,单元测试的go文件,方法的命名,您有什么建议呢?

    作者回复: testing代码包中文档在这方面有很明确的规定啊,我在文章中也讲了。

    2019-03-31
  • Gundy
    一个规范合格的项目离不开测试
    2019-02-13
  • 虢国技匠
    打卡
    写来大半年的go,竟然没写过测试,哎 🤣

    作者回复: 赶紧加上;)

    2019-01-22
  • 张裕
    观点非常正确,就我认识的程序员来说,优秀的程序员都有非常良好的测试习惯。
    2018-11-15
  • A 凡
    测试也正是自己经常忽略的,好好补补之前没有做好的内容,感觉看了这个专栏,自己写代码很多地方会更加规范
    2018-10-24
收起评论
10
返回
顶部