telegram中文版的下载的网址在哪呢 参数化测试一直是津津乐道的话题,我们都知道JMeter有四种参数化方式:用户自定义变量、用户参数、CSV文件、函数助手,那么JUnit5有哪些参数化测试的方式呢?

  JUnit5需要添加依赖才能使用参数化:

  用来定义参数化测试,用来定义参数值:

  执行结果:

  参数值会匹配测试方法的参数列表,然后依次赋值,这里一共产生了3个测试。

  是最简单的参数化方式,它是一个数组,支持以下数据类型:

  示例:

  值为null

  不能用在基元类型的测试方法。

  值为空,根据测试方法的参数类决定数据类型,支持, , , , 基元类型数组 (, 等), 对象数组 (, 等)

  结合了前面两个

  示例:

  等价于:

  参数化的值为枚举类型。

  示例:telegram 中文版

  其中的ChronoUnit是个日期枚举类。

  ChronoUnit是接口TemporalUnit的实现类,如果测试方法的参数为TemporalUnit,那么需要给加上值:

  因为JUnit5规定了的默认值的类型必须是枚举类型。

  names属性用来指定使用哪些特定的枚举值:

  mode属性用来指定使用模式,比如排除哪些枚举值telegram官网最新的下载是多少:

  比如采用正则匹配:

  参数值为factory方法,并且factory方法不能带参数。

  示例:

  除非是生命周期,否则factory方法必须是static。factory方法的返回值是能转换为的类型,比如, , , , , , , 对象数组, 或者基元类型数组,比如:

  的属性如果省略了,那么JUnit Jupiter会找跟测试方法同名的factory方法,比如:

  如果测试方法有多个参数,那么factory方法也应该返回多个:

  其中是Arguments接口的static factory method,也可以换成。

  factory方法也可以防止测试类外部:

  参数化的值为csv格式的数据(默认逗号分隔),比如:

  delimiter属性可以设置分隔字符。delimiterString属性可以设置分隔字符串(String而非char)。

  更多输入输出示例如下:

  image-20210714140242605

  注意,如果null引用的目标类型是基元类型,那么会报异常。

  顾名思义,选择本地csv文件作为数据来源。

  示例:

  delimiter属性可以设置分隔字符。delimiterString属性可以设置分隔字符串(String而非char)。需要特别注意的是,开头的行会被认为是注释而略过。

  自定义ArgumentsProvider。

  示例:

  MyArgumentsProvider必须是外部类或者static内部类。

  JUnit Jupiter会对String类型进行隐式转换。比如:

  更多转换示例:

  image-20210714143735484

  Dingtalk_20210714143207

  也可以把String转换为自定义对象:

  JUnit Jupiter会找到方法,然后把的值传入进去,进而把String类型转换为Book类型。转换的factory方法既可以是接受单个String参数的构造方法,也可以是接受单个String参数并返回目标类型的普通方法。详细规则如下(官方原文):

  image-20210714145601731

  显式转换需要使用注解:

  并实现ArgumentConverter:

  如果只是简单类型转换,实现TypedArgumentConverter即可:
telegram官网的最新下载网站怎么找
  JUnit Jupiter只内置了一个JavaTimeArgumentConverter,通过使用:

  测试方法的多个参数可以聚合为一个ArgumentsAccessor参数,然后通过get来取值,示例:

  也可以自定义Aggregator:

  然后通过来使用:

  借助于组合注解,我们可以进一步简化代码:

  参数化测试生成的test,JUnit Jupiter给定了默认名字,我们可以通过name属性进行自定义。

  示例:

  结果:

  注意如果要显示,需要使用两层,因为name是MessageFormat。

  占位符说明如下:

  image-20210714155314425

  本文介绍了JUnit5参数化测试的7种方式,分别是,Null and Empty Sources,,,,,,比较偏向于Java语法,符合JUnit单元测试框架的特征。另外还介绍了JUnit Jupiter的参数类型转换和参数聚合。最后,如果想要自定义参数化测试的名字,可以使用name属性实现。

  参考资料:

  https://junit.org/junit5/docs/current/user-guide/#writing-tests-parameterized-tests

seo