00:00
那么我们接着啊,我们接着上节课的继续讲,那么刚才呢,我们已经把这个就是我们说单元测试的它一个基本的原理,对吧,它的一个运行的一个机制做了一个说明,那么做了一个说明过后呢,我们来看一下它的细节,就是把刚才讲的东西呢,再总结一下,大家心里面就比较有底了。第一个我们看一下测试用例的文件名,必须以这个结尾,就下划线test.go结尾,比如说开下划线test go,这个开了CAL怎么写,这个没有没有规定,你看他的手册里面写的也是非常清楚的,来看这里。啊,大家看这里他也写的非常的清楚,他这样说的。他说呢这个啊,他说他是这样说的啊,要编写一个测试的一个又又翻成套件,你受得了吗?对吧,Case就一样的,需要创建一个名字,以这个这个结尾的。说的很清楚,就是你一定是以这个结尾的,但是你前面怎么写都无所谓,因为它都会把它加载进去。第二个呢,就是这个文件,这个文件包含的函数是T的叉叉叉这个函数如上所述,那么将该文件放在与被测试包相同的包中就可以了,当然也可以是主包啊,当然也可以是刚才我们换了一个包名,它的那个错误信息已经没有了。
01:23
那么该文件将被排除在正常的程序外。资包在运行go test命令时。将将被包含,它包含进去,包含进去这点呢,大家要要清楚,这是第一个需要同学们知道的。第二个我们看。测试用力的函数必须以test的打头啊,刚才也说了,被呃,被测试函数名一般来说啊,注意12就说的是一般来讲我们这个测试函数是T的加倍测试函数的名字,但是这个子母呢,要以这个不先,只要不以A到Z小写就可以了,那也就是说如果我这样写肯定就是错的,怎么写呢?比如说哎,韩老师这样写一个东西,那就完蛋了,比如说我把这个A改成小写的A。
02:08
各位,你要改成小写的A,我们来运行一下,看看这个有什么问题呢?看他已经告告诉一个警告了。他已经告诉你警告了,他检测出来了啊,他检测出来他会他怎么检测呢,它检测到你前面是test的,他认为你应该是一个。测试测试的一个用例,但是你又不这样写的时候,他他告诉你test at up hands,什么什么名字,一个不规范的,不规则的一个名字,什么first letter,就是第一个字母呢,就是test must not,必须不能是什么呀,Lock lock,小写的意思吗?就必须不要是小写,OK,但是你这个名字,你这个名字叫什么都可以,比如说说了韩老师用Y行不行也可以。他用Y,它测试的仍然是I达尔法,也就是说它到底测试哪个函数,其实不是你前面这个决定的,而是你里面内容决定的啊,这点请大家一定清楚,你看我再一保存,它就不报错了。
03:03
啊,他仍然是会调用这个东西啊,这个我就不去测试了,各位同学,但是呢,我们也没有必要故意瞎写一个名字,因为这个名字一看哦,那别的同事你的同事一看哦,Test at up你就很清楚哦,测试的是up,对吧,你不要写个test的什么,其他的名字也不对,好,这是第二个细节,第三个细节,第三个细节test ADD up。这个参数后缀,这个参数的行参必须是新TT,这个呢我带大家看一下手册。我们看一下它的手册啊,同学们找到它看一下,这里写的很清楚,写很清楚,这个它是T,那这个T是什么东西呢?我们来看一下它里面包含什么东西,往下拉。往下拉里面呢,有一个t type t里面包含了很多的什么呀,方法这个大家应该能看懂。因为前面我们讲过,这个是代表他和一个T绑定,比如说error LF,比如打一个错误格式化的错误,Fair fair now,还有fail的致命的一个错误错致命错误,并且把这个输出的日子格式化。
04:15
好,还有记录日志等等,还有取名字等等,Run skip跳过什么,好,那么最常用的就是刚才老师所说的,一个是这个,这个大家要会用,另外一个呢,就是我刚才说的这个log f,这是格式化输出一个日志,这两个用的比较多,好其他的函数呢,同学们有兴趣自己点进去看一下就行了啊呃,因为我们现在呢,还是要重点就是把这个就是大家能用,大家能用就行了。好,接着往下看,第三一个,第四一个细节,一个测试用例函数中可以含有多个测试用例函数,就一个测试文用例文件中可以有多个测试用例函数,什么意思呢?就这个图,就说我这一个测试用例文件可以包含很多这个函数,我可以既既可以测试test阿,也可以测试test的哈,啊,这个都是可以的。
05:07
好,紧接着看第五个,这个有用,那么运行测试用例的指令呢,我们前面用的是V。这个方式呢,运行正确或是错误都会输出日志,如果说你只想看什么呢,错误的,比如如果正确我你就不要告诉我了,你只告诉告诉我这个错误的,那你就不要带杯,大家看我运行一下。比如说我把这个V去掉。我把这个杯去掉,你们可以看到此时此刻输出的信息,其实非常的简洁,就告诉你pass,其他不要了,因为你都正确,有一个呢,就是这是我的,这是我的一个显示输出,因为不是以日志的形式打出的,所以他还是给你调出来了,但是。但是呢,其他的像你刚才看到的啊,像你看到这个t fair fat f和log f就不就不给你输出来了,它认为是正确的,你不想看,如果错误呢,它仍然会提示啊,打个比方,我给你们改一下,假设我们这个,呃,这个函数爱up又写错了,我们又把它改成减一,减一显然是错的,对不对?好,这个时候我们再来运行一下,你看错误信息还是会输出来的。
06:21
因为他觉得正确就算了,错误还是给你显示,大家看这里他还是告诉你错了,他说C哪里错了呢?就是这个里面有个14行说执行错误,好,这个大家注意一下,好接着再继续往下文。屏幕怎么了?哦,新来那位同学看不到是吧?中午的时候,那些同学做,他是在,他是在试听的还是上课的。他在试听的吧,估计是。啊,已经上课了是吧,好的,那那已经加入到我们这边,中午的时候让他自我介绍一下,小伙子刚好来了,就折腾他一下,对吧?啊啊啊,张代代兴呢,就张代也要做好准备啊,如果他错的很少呢,你也上来补充两句好,不然我又要出智力题啊。
07:06
好,第五一个,当出现错误时,使用T来格式化输出错误信息并退出程序。还有这个是舒舒适适。啊,测试,测试用例中并没有放在函数中,原理我也讲过了,Pass表示测试用例运行成功,Fair表示测试用例运行失败。下面这两个比较重要,测试单个文件一定要带上被测试的原文件,什么意思呢?大家看到。如果说我这里有两个文件,大家看这有一个测试文件。这儿。这儿还有一个测试测试文件,但是有时候你是这样想的啊,同学们,因为在默认情况下呢,我们测试框架它会整体扫描你这个所在文件夹所有的。太中间。但是。有时候你可能不是个需求说,我只想测试这一个文件。
08:02
我只想测试这一个文件里面的测试用例,那怎么办呢?你就指定文件名就可以了,大家看到怎么指定,只需要写T-V,然后呢,把这个测试的文件名,以及这个测试文件名带的那个测试函数。把它写进去就可以了,这样呢,你会发现哪一个不会被调用呢?就是你的这个sub text这个函数就不会再被测试了,这这个是以文件为单位进行测试,那么我们来看看这个是怎么说的啊,这个是以测试文件为单位,那给大家运行一下,那同学看,具体来说啊,只需要把文件名带上就可以了,写清楚来我们跑一下。各位各位同学先看一下啊,Go test岗位默认是全部测试。一共测试了三个。一共测试了三个,大家看看到一个是这个。第二个第三个啊,这这第三个好,现在我指向测试那个,开了下划线test的那个文件里面,测试用例我应该这么写,杠go test test,杠V,然后呢,开test.go还有开。
09:16
下滑限购这个顺序应该无所谓啊,你可以把这个写前面啊,这写错了。啊,这样就可以了,这样的代表就测试,其实就测试的upper和哈,我们运行一下。我们运行一下,我们可以看到。我们可以看到各位同学请看到那个就没有被测试了,只测试了一个,呃,At upper,还有一个哈,因为这两个呢,是被这个文件怎么样包含几个,另外一个就没有错了啊,这说明你是可以进行选择的,这是一个说明啊,同学们注意看,待会我们我们在板书,还有一点呢,有些同学说老师我有这样一个需求,我只想测试其中一个函数也可以。因为有时候这个测试用例特别多,你每次全部测试,你不吃饱了没事干嘛,对不对,因为将来你你真是测试的时候,这个测试用例很多,函数很多,你说啊,有100个我都去测试一下,自自个看着都都眼晕,那你也可以测试单个方法的,单个方法,那怎么写呢?就go test-V里面带这样一个参数,这个带上啊各位把这一个带上,再加上你要测试的那一个测试用例的文件名,那个那个函数名就可以了,那我给大家做一个演示,比如说我只想测试哪个呢?我只想测试开了test里面的这一个方法。
10:34
啊,这一个用力,这一个用力,那么同学们看应该怎么写呢?可以这样写,Go run。杠V-test。Run啊,然后写上I upper。Upper。好就可以了,回车。回车,诶,是不是我单词写错了呀。二胎明显。TT点问,没写错。
11:03
啊,这是测试对吧,写错了,这地方写错了。这写错了,刚才这写错了,跑。好一个。好,各位同学,大家可以看到,现在呢,你会发现只测试了一个。他,诶,为什么没有。噢噢噢噢哦。哎,为什么一个都没收拾到呢?哦,这个U写写写成那个小写了是吧。是这样的吗?我看看我这个文件这个用里面,哦,确实是啊,UU是这个大写的,我刚才写的小写的,所以他告诉你no test run对吧,现在就应该没问题了。现在就没问题了,各位朋友。好同学们可以看到呢,现在就测试了一个,哪一个呢,就是test up,好,这是一个用例,好同学们,那关于这个细节,那么十个我们就讲完,我们把它板述一下,同学们板述一下,这是用力的一个细节。
12:06
总结啊,同学们。来整理一下第一个,诶,大家做一个做一个整理啊第一点,然后呢,我把它也写到这里来,一共是。九个这个听其名而知其意,对不对,一下就知道了,好简单的板述一下哈,第一个。第二个。对,第二个啊,第三个。好,这个地方第三个。好,第四个,一个测试用例里面可以有多个函数运行的指令。它运行的指令有这么多,然后当错出现错误的时候呢,可以这样写。诶,错的时候可以用格式化输出,正常日志呢,是T啊log f测试用例没有放到函数里面,为什么没有放到函数里面,因为其实是被这个测试的框架帮你调用了,Pass表示的是输出,还有一点我再强调一下,看时间啊,时间怎么看看这还有刚才讲的第11个,第十个和第11个细节,一个是测试单个文件怎么回事,对不对?诶,这是单个文件,还有一个测试单个的函数。
13:13
测试单个的函数又怎么回事?刚才老师做了一个说明。好的,我把这两个方法也给大家拿过来,对,一个是这样写的,对不对。这样写的,刚才我们用了一下go test写成文件名。写在文件名,另外一个呢,这样写的高。Go test-V-test.wrong然后呢,写上我们要测试函数,比如说test。ADD upper。具体来说就这样子的,好,同学们,嗯,关于它的几个细节我们就说完了,说完了那下面呢,就要给大家出一个题了,我先截取一段视频。
我来说两句