1、Junit5基础知识
①JUnit5三大组成
Junit Platform(执行相关) / Junit Jupiter(扩展相关) / Junit Vintage(兼容)
②Junit命名规则
测试类名称需要以test开头或结尾
测试代码文件写在src/test/java下
测试资源文件放src/test/resources下
③用例结构
测试类中的测试用例,都需要使用@Test注解
测试标题就是测试类中方法名(在方法上可以使用@DisplayName注解给方法名取中文的测试标题别名)
预期结果和实际结果,使用Assertions类的断言方法进行处理
前置处理(@BeforeEach/@BeforeAll)和后置处理(@AfterEach/@AfterAll)
- BeforeEach 和 AfterEach是在每个方法前后都要执行一次,BeforeAll 和 AfterAll是在整个测试类中只执行一次
- BeforeAll 和 AfterAll只能修饰静态方法,BeforeEach 和 AfterEach可以修饰普通方法
- BeforeAll 先于BeforeEach执行,AfterAll 后于AfterEach执行
- 如果子父类中都有,则执行顺序是:父类BeforeAll-子类BeforeAll-父类BeforeEach-子类BeforeEach-父类测试方法-子类AfterEach-父类AfterEach-父类BeforeEach-子类BeforeEach-子类测试方法-子类AfterEach-父类AfterEach–子类AfterAll-父类AfterAll
④参数化
先要在pom中进行引入Junit-Jupiter-params 依赖
使用@ParameterizedTest 注解替换@Test注解(尽量不要与@Test 共用,否则用例会多执行一次)
-
单参数使用@ValueSource注解,参数使用(shorts,chars,ints,bytes,floats,doubles,boolens,longs,strings,classes)
-
多参数使用@CsvSource注解,使用参数delimiterString来指定分隔符,不用则默认为“,”分隔
-
多参数文件参数使用@CsvFileSource注解(需先在src/test/resources目录下创建数据文件)
-
使用@MethodSource(参数) 注解
带参数--参数名与静态方法名相同 不带参数--会自动调用与测试方法名相同的静态方法 静态方法的返回值类型需要与测试方法的参数类型保持一致 使用arguments传递多个参数
[image]