00:00
这个单元测试上节课呢,我们说了有这个两个要求,第一个要求这个文件名必须得以下划线,Test,诶结尾test.go结尾前面这个前缀无所谓啊,你可以自己指定,不过习惯上我们测的是谁,哎,前面这个前缀就是谁,这是这个啊,哎,这个要求另外呢,里边的方法这个呢必须是test test,然后呢,后边这个呢是。这个音这个二十二十六个字母那个啊,必须得是大写的一个英文字母,这个方法名这块要改成小写的,那不行啊也不行,而且呢,如果你这个方法如果比如改成小写的。哎,改成test这种呢,它将不执行,哎,它是不会执行的啊,比我说一下哎,如果如果这个呃,函数名不是以什么呢,Test开头。啊,开头。那么。
01:00
该函数。你默认?不执行。好,我们这个把它改成小写了,哎,我们来试一下看看行不行啊,在摸这块呢,我们来过一下test。嗯。哎来,哎又直行了啊执行了,哎,我们来看一下。连接。是不是没有变,诶对吧,诶证明他没有执行啊,没有执行,而且呢,这个诶你看这个下边打印这句话,测试添加用户了吗。没有吧,哎,没有证明这个方法没有执行,那么它默认不执行,我们可不可以让他执行呢?可以,哎,所以这块继续说啊,我们可以干什么呢?可以将它设置一个设置成为一个子测试程序。
02:03
子,哎,测试程序。测试函数吧,测试函数啥意思呢?就我有一个,比如总的一个测试函数,下边作为它的一个子的一个函数,明白啥意思吧,就是一个儿子吗?好,那现在这样。我再来写一个函数,哎,放个test什么呢?比如user,我专门来测试跟user有关的T,因为将来我是不是user里边要写好多方法。哎,有什么添加的,删除的,更新的,或者是这个获取所有的对吧,那现在呢,我写一个测试程序,下边一个一个小写的就是子测程序了啊同样星testing。哎,忘了敲错了啊,Testing点一个T,哎点T好在这打括号好诶我们在这,诶来不是这样,打上一句话fmt,点一个print,烂,诶写一句话什么呢?诶开始测试。什么呢?A user中的这个方法相关方法。
03:04
好,那这个时候啊,如果你有这一个这个呃,Test u这块呢,我们知道它默认会执行它,那这时候这个子程序它默认执不执行呢?来啊,我们来走一下,比如go test。哎,开始测试U中的相关方法,哎,是不是打印这句话证明调这个方法了吧,那调这个方法我们来数据库来刷新一下,是不是紫色程序没有开始啊,没有执行,那怎么样来执行这个子测试程序呢?所以这块啊,得掉一个方法。用这个T点一个run。你看run里边这个函数里边是不是传个name,传一个字符串,就是词正你自己写是不是后边要传一个方式了,对吧?哎,比如来,哎写一个啊,我给你写你就明白了,来括号我写一个什么呢?诶测试添加用户。好,测试添加用户,然后呢,诶我在后边就得写那个has的一个ADD user,哎是不是得调这个子函数了呀,哎就掉它了,哎这样的话,哎,它就会哎执行了啊就会执行了。
04:10
逗号好保存,哎,这时候呢,它就会执行了,所以这块啊,通过通过这一个。T点外。呃,来干什么呢?哎,执行这个子测试程序,测试函数,好那现在哎,我们再来看,哎又会插入一个一样的了啊,那这样我为了不让它往数据库里边插入这样吧,我看它会不会打印这句话就能证明了啊,我把这个就注掉了啊啊我又又又插入这个两条一样的了,好那现在这个user用不着了,所以呢,这个也注掉,我们就让他打印一句话啊,测试这个添加用户诶。哎,那就打印两句了是吧,哎打印两句了,那这块我写一个什么呢?哎,添加用户这个子。写个什么呢?子测试函数,哎,子式函数执行好,就这样了啊,子测试函数执行好,我们就看一下最终的这些话会不会被打印就可以了,来诶,Go past。
05:13
开始测试优等的相关方法,是不是子测试程序执行了对吧?哎,这是这个啊,这这个我们可以呢,哎,把一个函数的方法名给它以小写哎,小写开头,哎,这个就可以任意指定了啊,这个方法就可以随便写了,只是在这块指定的跟他一样就行了,还有一种。来还有一种啊,还有那个测试的一个函数叫test map。这里边儿呢叫M,呃,这个星。Testing。点一个MM,诶,这个这个函数能干什么呢?它能在这个测试函数执行之前,比如测试函数执行之前,你想干一些其他的事情,就可以写这样的一个测试了,Test慢,哎,Test曼啊,也就在这个。
06:08
那。主要的吗?这个函数,哎可以在这个什么呢?哎测试函数执行之前。呃,做一些其他操作。其他操作,也就是你如果有其他的需求,你在这个测试之前想干一些其他的事情,就可以写到这里边,诶好,我们在这呢,也是按fmt点一个print。不是他来。哎,打印一下,打印什么的什么,测试开始我就打印一句话啊,打印一句话,哎来测试开始好,如果哎,我单单就这样写啊,在测试之前,哎,我要执行这句话,现在我如果就这样写,看下边的会不会不会执行啊,Go past。好,测试开始。确实。
07:00
调这个test方法了,但是下边这些掉了吗?没有吧,哎,没有,所以这块啊,注意在这块呢,你还得干什么呢,用M掉一下这个run,这个时候呢,它才会执行这个测试函数,哎,通过什么呢,M点。哎,干什么呢?哎,这个来执行什么呢,测试函数。也就是我这个test慢呢,如果你有需求测试之前我想干一些其他的事情,就可以在这里边写代码了,那这个关于什么时候执行测试,那只有这个掉一下慢的run的时候,它才能执行,才能执行,哎,所以啊这块呢,这个test慢,这是主要的一个测试方法了,你可以在测试方法之前,哎,来干一些其他事情,在这个方法来表现就行了,好,我们再来一下,呃,Go test。走。测试开始,开始测试U的中的相关方法子,测试函数执行,所以这块啊,那当然了,如果我还有一个这个方法子测试。
08:01
子测试方法是不是在这继续写t.run就可以了?哎,这能理解吧,如果还有一个test什么呢?Delete user,那这块有一个T点,诶测试删除用户,然后delete user就可以了,它就能执行了啊,两个都能执行了,另外还有一点,如果我要想看这个测试的一个详细信息,用这个命令go test的一个杠位。哎,这样呢,打的信息就比那个哎要多一些,哎要多一些啊测试开始什么run test user,哎这块打的什么,开始测试user的相关方法,然后下边呢,呃,Test的什么,呃,测试添加用户,呃紫测程序执行这里边的打印的这个呃信息呢就比较多了啊,就是信息相对于来说详细一点啊详细一点,如果你就单纯的想测试一下这个方法能不能有没有错什么的,你用这个go态就可以了,Go态就可以了啊就是我们这块这个怎么来进行单元测试,哎单元测试如果比如你这个后期呢,我们这个U的里边的方法比较多,那这种test u的还有下边这个子子子测试方法,我们就派上用场了啊派上用场了,可能这个我们有可能用不到,因为我这个可能测试之前不需要做一些其他的事情,所以呢这个呢,哎这个就用不着了,但是其他的像子测试程序后期呢,我们会有好多方法,这个肯定是能用到的啊,这是我们这块这个单元测试好,那下面的时间啊,你就把这个呃导这个第三方库啊,然后那个写一个删除啊。
09:26
啊,或者是更新的一个方法来测一下哎。操作一下我们的数据库啊,我把这个第三方的这个。呃,驱动来发给你。
我来说两句