本文转自测试人社区,原文链接:jck28-lucio-1- junit5参数化用例(一) - 学习笔记 - 测试人社区
JUnit5 参数化在测试流程相同,测试数据需要根据业务需求切换。JUnit5的参数化支持多种形式数据来源。参数化环境配置pom 引入
org.junit.jupiterjunit-jupiter-params5.8.1testJUnit5 简单参数化 @ValueSource参数化用例的时候使用的注解由 @Test 换成 @ParameterizedTest单参数化注解 @ValueSource注意: 如果 @Test 和 @ParameterizedTest 同时使用则会多执行一次@ValueSource 支持的参数类型
public class ParamDemoTest { // @ParameterizedTest 注解指明为参数化测试用例 @ ParameterizedTest // @ValueSource 单参数注解,示例中为String类型参数化 @ ValueSource(strings = {“ 张三”, “李四”, “王五” }) void testParam(String name) { assertEquals(name.length(), 2); }}
单参数的问题与解决方案问题: 很多场景并不会只有一个参数需要进行参数化的验证。解决方案:使用多参数的参数化方式。JUnit5 多参数的参数化 @CsvSource多参数参数化注解 @CsvSource。@CsvSource 通过指定的分隔符实现参数化。
public class CsvParamDemoTest { // @ParameterizedTest 注解指明为参数化测试用例 @ ParameterizedTest // @CsvSource 注解指定数据源为 csv 数据,csv默认分隔符为 , @ CsvSource({“ 张三, 3”, “李四, 15”, “王五, 8” }) void testParamCsv1(String name, Integer age) { assertEquals(name.length(), 2); assertTrue(age > 2); } // @ParameterizedTest 注解指明为参数化测试用例 @ ParameterizedTest // @CsvSource 注解指定数据源为 csv 数据,delimiterString 指定数据的分割符 @ CsvSource(value = {“ 张三 | 3”, “李四 | 15”, “王五 | 8” }, delimiterString = “ | ”) void testParamCsv2(String name, Integer age) { assertEquals(name.length(), 2); assertTrue(age > 2); }}
JUnit5 CsvFile的参数化 @CsvFileSource多参数文件参数化注解 @CsvFileSource在项目的 test/resources 中新增测试数据 csv 文件@CsvFileSource 支持指定的分隔符进行参数化多参数化注解 @CsvFileSource 示例新建数据文件data.csv使用 , 分隔的data2.csv使用 | 分隔的
复制代码张三,3李四,15王五,8张三|3李四|15王五|8
多参数化注解 @CsvFileSource 示例从csv文件中读取数据信息。读取数据文件使用 , 分隔的读取数据文件使用 | 分隔的
public class CsvFileParamDemoTest { // @ParameterizedTest 注解指明为参数化测试用例 @ ParameterizedTest // @CsvFileSource 注解指定数据源为 csv 数据,csv默认分隔符为 , @ CsvFileSource(resources = “/data.csv”) void testParamCsvFile(String name, Integer age) { assertEquals(name.length(), 2); assertTrue(age > 2); } // @ParameterizedTest 注解指明为参数化测试用例 @ ParameterizedTest // @CsvFileSource 注解指定数据源为 csv 数据,delimiterString 指定数据的分割符 @ CsvFileSource(resources = "/data1.csv", delimiterString = "|") void testParamCsvFile2(String name, Integer age) { assertEquals(name.length(), 2); assertTrue(age > 2); } }
软件测试开发免费视频教程分享 - 公众号 - 测试人社区