Junit5框架第一天学习笔记

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]