测试框架Junit-jupiter + Junit套件
框架依赖
junit-4.13.2.jar
junit-jupiter-5.9.2.jar
junit-jupiter-api-5.9.2.jar
junit-jupiter-params-5.9.2.jar
junit-platform-commons-1.9.2.jar
junit-platform-engine-1.9.2.jar
junit-platform-launcher-1.9.2.jar
junit-platform-runner-1.9.2.jar
hamcrest-core-1.3.jar
opentest4j-1.2.0.jar
套件
junit-platform-suite-api-1.9.2.jar
junit-platform-suite-commons-1.9.2.jar
maven依赖
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.9.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-runner</artifactId>
<version>1.9.2</version>
<scope>test</scope>
</dependency>
Junit5是什么
JUnit 是一个 Java 编程语言的单元测试框架。它是由 Kent Beck (极限编程)和 Erich Gamma(设计模式)建立,是 xUnit 家族中最成功的的一个。大部
分的 Java IDE 都集成了 JUnit 作为单元测试工具。
Junit5用法
规范
- 
测试的类不能是抽象类,且必须只含有一个构造器。 
- 
测试方法不能是抽象方法,而且不能有返回值。 
- 
测试类和方法不是必须被public修饰,但不能被private修饰。建议测试类和方法省略public修饰符、一些特殊的要求除外。 
标准的测试类如下:
public class StandardUnitTest {
    
常用注解
@Test
标记测试方法
public class StandardUnitTest {
    
@ParameterizedTest
标记该测试方法可进行参数化测试、通常与@ValueSource联合使用来指定参数的数据源
class ParametizedTest {
    
@RepeatedTest
重复执行该测试用例
class UserRepeatTest {
    
@DisplayName
声明测试类或测试方法的自定义显示名称
@BeforeEach
表示被注解的方法应在当前类的每个@Test,@RepeatedTest,@ParameterizedTest方法之前执行
@AfterEach
表示被注解的方法应在当前类的每个@Test,@RepeatedTest,@ParameterizedTest方法之后执行;
public class StandardUnitTest {
    
@BeforeAll
表示被注解的方法应该在当前类的所有@Test,@RepeatedTest,@ParameterizedTest, @BeforeEach方法之前执行
@AfterAll
表示被注解的方法应该在当前类的所有@Test,@RepeatedTest,@ParameterizedTest,@BeforeEach方法之后执行
public class StandardUnitTest {
    
@Disabled
用于禁用测试类或测试方法;
public class StandardUnitTest {
    
如果使用UI线程运行测试用例则加上下面的注解
使用断言
assertEquals
判断两个对象或者原始类型是否相等
assertNotEquals
判断两个对象或者原始类型是否不相等
assertSame
判断两个对象引用是否指向同一对象
assertNotSame
判断两个对象引用是否指向不同对象
assertNull
判断给定对象引用是否为null
assertNotNull
判断给定对象引用是否不为null
这里有一个问题,当我们在一个测试用例中加入多个断言时,如果其中一个发生了错误,后面的测试代码将不再执行
我们可以使用Assertions类中的assertAll方法 解决上述问题
假设
假设是 org.junit.jupiter.api.Assumptions 类中的静态方法。他们仅在满足指定条件时执行测试,否则测试将中止。当假设失败时,将抛出 org.opentest4j.TestAbortedException 并跳过测试。不会导致测试失败。
assumeTrue
验证给定的假设为true,若为falsee,将终止测试
assumeFalse
验证给定的假设为false,若为true,将终止测试
assumingThat
执行提供的可执行Executable,但仅在提供的假设有效时执行。如果假设无效,Executable将不执行
@Test
void regUser() {
    Assumptions.assumeFalse(false);
}
@Test
void assumptThat() {
    Assumptions.assumingThat(true, () -> {
        System.out.println("pass");
    });
}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号