第十四章、单元测试
一、基本介绍
1.1、在工作中,我们经常会遇到这样的情况,就是去确认一个函数或者一个模块的结果是否正确,如:
1.2、传统方式测试
在main函数中,调用addUpper函数,看看实际输出的结果是否和预期的结果一致,如果一致则说明函数正确,不一致则函数有问题
案例:
分析:
1、测试不方便, 我们要在main函数中去调用,这样就需要去修改main函数,如果项目正在运行,就有可能去停掉项目
2、不利于管理,当我们测试多个函数或者多个模块时,都需要写在main函数,不利于我们管理和清晰思路
3、引出单元测试,testing测试框架,可以很好的解决问题
1.3、单元测试基本介绍
1.3.1、单元测试基本入门
1.3.2、单元测试基本原理
1.3.3、单元测试总结
a、测试用例文件名必须以_test.go结尾,如:cal_test.go,cal不是固定的
b、测试用例函数必须以Test开头,一般来说就是Test+被测试的函数名,比如TestAddUpper(),Test后面的第一个字母必须大写
c、TestAddUpper(t *testing.T)的参数类型必须是testing.T
d、一个测试文件中可以有多个测试用例函数,比如TestAddUpper() TestGetSub()等等
e、运行测试用例指令:
命令行去到测试用例文件所在文件夹,执行go test,【如果运行正常,无日志;运行错误,输出日志】
命令行去到测试用例文件所在文件夹,执行go test -v,【如果运行正常、错误,都会输出日志】
f、当出现错误时,可以使用来格式化t.Fatalf() 输出信息,并退出程序
g、t.Logf()方法可以输出相应日志
h、测试用例函数并没有放在main()函数中,也执行了,这就是测试用例函数的方便之处
i、PASS表示测试用例运行成功,FAIL表示测试用例运行失败
j、测试单个文件,一定要带上被测试的源文件,go test -v cal_test.go cal.go
k、测试单个方法,go test -v -test.run TestAddUpper
1.3.4、单元测试综合案例_练习
代码: