Junit深入讲解(JAVA单元测试框架)

1、此处用的是Junit5,此处pom文件需要引的依赖是

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.9.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.9.1</version>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.9.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.9.1</version>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <version>5.9.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <version>5.9.1</version>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-suite</artifactId>
            <version>1.9.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-suite</artifactId>
            <version>1.9.1</version>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>5.9.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>5.9.1</version>
        </dependency>

2、@Test注解(不需要main方法就可以执行)

import org.junit.jupiter.api.Test;

public class junit {
    @Test
    void Test(){
        System.out.println("这是一个测试用例");
    }
}

3、可以运行全部的也可以单独运行

4、@BeforeAll(前置动作,在所有代码前完成,只执行一次)@AfterAll(后置动作,在所有代码后完成,只执行一次)静态方法

import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;

public class junit {
    @Test
    void Test(){
        System.out.println("这是一个测试用例");
    }
    @Test
    void Test1(){
        System.out.println("这是二个测试用例");
    }
    @BeforeAll
    static void start(){
        System.out.println("******开始进行测试******");
    }
    @AfterAll
    static void end(){
        System.out.println("******结束测试******");
    }
}

5、@BeforeEach和@AfterEach,有几个方法执行几次,不是静态方法

import org.junit.jupiter.api.*;

public class junit {
    @Test
    void Test(){
        System.out.println("这是一个测试用例");
    }
    @Test
    void Test1(){
        System.out.println("这是二个测试用例");
    }
    @BeforeAll
    static void start(){
        System.out.println("******开始进行测试******");
    }
    @AfterAll
    static void end(){
        System.out.println("******结束测试******");
    }
    @BeforeEach
    void starteach(){
        System.out.println("******开始BeforeEach测试******");
    }
    @AfterEach
    void endeach(){
        System.out.println("******开始AfterEach测试******");
    }
}

6、指定执行顺序

import org.junit.jupiter.api.*;
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class junit {
   @Order(2)
    @Test
    void Test(){
        System.out.println("这是一个测试用例");
    }
   @Order(1)
    @Test
    void Test1(){
        System.out.println("这是二个测试用例");
    }
}

7、单参数(不能出现>1个参数,比如有了x就不能有y)只能接收一种类型的参数(参数化的不能加Test)

(1)各种类型

(2)int类型参数

 @ParameterizedTest
    @ValueSource(ints={1,2,3,4})
    void test2(int x){
       System.out.println("x的值为"+x);
    }

8、多参数

 @ParameterizedTest
    @CsvSource({"'张三',18"})
    void Test3(String name,int age){
       System.out.println(name+"今年"+age+"岁");
    }

9、多参数读取文件中的数据

(1)文件要创建在resources下面

(2)代码

  @ParameterizedTest
    @CsvFileSource(resources ="test01.csv")
    void Test4(String name,int age){
        System.out.println(name+"今年"+age+"岁");
    }

(3)文件内容以及运行结果

10、方法的形式获取参数

    public static Stream<Arguments> Generate(){
       return Stream.of(
              Arguments.arguments("张三",13),
              Arguments.arguments("李四",14)
       );
    }
    @ParameterizedTest
    @MethodSource("Generate")
    void Test6(String name,int age){
       System.out.println("姓名:"+name+"年龄"+age);
    }

11、测试套件

(1)通过class来测试,也可以同时运行多个class

@Suite
@SelectClasses({junit.class})
public class test {
}


@Suite
@SelectClasses({junit.class,junit1.class})
public class test {
}

(2)通过包运行

@Suite
@SelectPackages(value = {"example"})
public class test {
}

  • 45
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值