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 {
}
标签:JAVA,void,单元测试,System,junit,jupiter,println,Junit,out
From: https://blog.csdn.net/m0_69134284/article/details/137151853