11 03 2022

第十四章、单元测试

        一、基本介绍

            1.1、在工作中,我们经常会遇到这样的情况,就是去确认一个函数或者一个模块的结果是否正确,如:

            image.png

            1.2、传统方式测试

            在main函数中,调用addUpper函数,看看实际输出的结果是否和预期的结果一致,如果一致则说明函数正确,不一致则函数有问题

            案例:

            image.png

            分析:

            1、测试不方便, 我们要在main函数中去调用,这样就需要去修改main函数,如果项目正在运行,就有可能去停掉项目

            2、不利于管理,当我们测试多个函数或者多个模块时,都需要写在main函数,不利于我们管理和清晰思路

            3、引出单元测试,testing测试框架,可以很好的解决问题

            1.3、单元测试基本介绍

            image.png

            1.3.1、单元测试基本入门

            image.png

            image.png

            

            image.png

            1.3.2、单元测试基本原理


            image.png

            1.3.3、单元测试总结

            a、测试用例文件名必须以_test.go结尾,如:cal_test.go,cal不是固定的

            image.png

            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

            image.png

            k、测试单个方法,go test -v  -test.run TestAddUpper

            image.png 

            1.3.4、单元测试综合案例_练习

            image.png

            代码:

            image.png

            image.png

            image.png

            image.png