00:00
好,接下来呢,我们再来说一个解用这调物里边非常重要的一个特性叫参数化测试,我们以前呢,经常会有这样的一个场景,我们这呢,有一个业务逻辑方法,它接受一个入参,这入参如果我们写单元测试类,我们只传一个固定的参数,可能测不出来什么东西,我们希望呢,用各种各样不同的参数,我们来测试我们这个业务逻辑,如果它都能正常工作,那说明就没有任何问题。所以呢,我们的这个解用条五的参数和测试就给我们这些提供了可能,让我们可以使用不同的参数多次运行某一个测试,那么就这些参数化测试呢,也来参照我们这个官方文档,官方文档关于参数化测试在p right的test里边,那这些参数测试呢,它能进入非常多种参数测试,比如第一个叫value source,哎,我们的这个测试的值来源于某一个地方啊,包支持我们八大基础的类型,以及string class等等,这些对象类型包括呢,还有none source我们这些。
01:01
参数呢,给你直接给一个那的入参,当然我们也接受枚举的参数,我们还接受可以从CSV这个非要文件里边读取,甚至于呢,我们可以调用一个方法来进行读取,所以这些都是我们说的参数化测试,我们来做一个参数化测试来看一下。那我们就直接在这个方法里边来写吧,Word来test pized来测试我们的这个参数化测试,参数化测试呢,有一个重要的注解叫parameter rest test,好,然后呢,我们希望我们这里边呢,会有一个参数,比如有一个int,哎,那这个I从哪来呢?好,那先来第一个注解,我们叫p rest test代表呢,我们当前测试方法不是一个普通的test,它是一个参数化测试,然后呢,参数化测试来我们再来display name来写一个参数化测试,接下来呢,它的这个参数从哪来?我们应该可以来写一个,它呢有一个第一种方式叫value source,我们这个参数呢,来源于一堆的值,这些值呢是哪些?我们现在需要一个int类型的值,所以呢,我们可以在这,在这呢,我们来准备一个int类型的,比如12345。
02:19
好,我们在这准备了一些值,咱们这12345呢,我们现在是ins,我们这些参数呢,是来接收的int类型的一些值,好,我们这12345有这五个值,这五个值呢,默认就会传入到这个里边给我们来进行测试,所以呢,我们每次看它传入进来的是几,是我们的这个,哎。我们来可以看一下我们这个参数化测试,我们来运行一下。好,我们现在呢,看到我们这个参数化测试,因为我们现在呢有五个参数,所以呢,它会同时给我们来测试,这五个参数同时传进来以后,它会是什么样的一种情况,所以呢,这就是我们说的参数化测试,给我们把所我们所有要测的参数我们统一起来,给我们挨个测一遍,那我们后来的参数化测试呢,也有非常多的这个参数化测试注解,除了这个value source外,还有我们之前说的这一堆来比如看,那我们来看一下啊,它下面给我们提供的有value source,有none source,我们这个参数呢,是一个nu,也是或或者呢是一个空集盒,或者呢,我们在这还可以来指定一个来看以看一下,下边呢,我们可以是一些枚举,包括呢,我们可以读取一些文件,包括我们甚至可以读一个方法,比如我们这些所有的参数是来源一个方法的,大家注意,那这个方法呢,必须返回一个流,而且是静态的。
03:41
所以我们前面的这个东西呢,我们又可以写成这样,假设呢,我们在这准备了一个方法,这个方法里边呢,有Apple banana,然后呢,给我们返回一个啊,好多东西,比如安特硅谷有一堆的这个参数,那接下来呢,我们这个参数化测试,我可以让它传进来,我们再来写一个参数化测试,参数化测试这个参数化测试呢,接下来我们就叫test prime rest2,然后呢,它是一个string,我们传入一个string,而这个参数呢,从哪来?我们可以认为它是从方法来的,而这个方法名叫什么呢?来,我们就在这可以来写上,叫string provide。好,我们接下来来测试一下它走。
04:28
同样的,他会把这三个参数呢,都给我们传进来,最后看我们到底是业务逻辑是一个什么样的情况,那接下来就把这三种参数呢,都给我们打印过来了,这就是我们说的参数化测试。这个东西呢,在我们后来也用的比较多,哎,我们就专门来测试我们某一个业务逻辑这几种参数进来以后能否工作正常,那在最后我们整个测试呢,我们后来都使用解用NEATE5的书写方式,那如果我们以前是解用NE4,我们如何能迁移到解用NE5,所有的这个迁移呢,官方也给了我们一个迁移指南,老师翻译出来呢,就是这个样子,我们可以从我们简用NEATE4里边迁移,怎么迁移呢?首先你如果使用简用NEATE5,要兼用简用NE4,首先导入我们这个简用NE4兼容的这个引擎,然后接下来呢,你在导入期间,你要注意我们接下来用的单元测试注解是这个ju这个包里边的,然后呢,我们所有的这个assertions也在这个包下,大家一定要把包重新导一下,而且以前解用四里边的这些before after,这些注解呢,已经不复存在了,你要使用这些before each after each来进行替换,包括解用的四以前的before class after class也不复存在了,要使用before all after all。
05:42
然后等等等等,把括我们以前的这个注解按a ignore,相当于我们要忽略哪个测试跳过哪个测试,现在已经被disable的这个注解来替换了,以前解四里边的分类是can注解,现在已经被探注解替换了,包括以前解unit里边的run withs,现在已经被替换成extend位,等等等等,这块呢都有一个我整个完整的迁移报告,所以我们希望最终大家在使用解用四迁移过来以后呢,就要注意我们这些细节,从我们的这个导包开始,一一直到我们这些铸解都在哪个肋下,我们都一定要注意这我们整个说的解用套五,大家解用聚团五的完整功能,大家可以来参照我这个官方文档继续往下做就行了,那我们后期呢,也可以给大家出一个解用团五的完整视频。
我来说两句