Junit是针对Java的一个单元测试框架
注解
需要在pom.xml中添加
<dependency> <!--注解--> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.9.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-params -->
@Order():决定各个测试用例的执行顺序
@Test :表示这个方法是一个测试用例
@Disabled:表示当前方法忽略
@BeforeAll:所有测试用例运行前,执行对应的方法。如果做UI自动化,里面通常放的代码为:创建驱动、打开网页
@AfterAll:所有测试用例运行结束后,执行对应的方法。里面通常放的代码为:关闭网页
@BeforeEach:每个测试用例运行前,执行对应的方法
@AfterEach:每个测试用例运行后,执行对应的方法
import org.junit.jupiter.api.*;
public class test {
//方法默认是default,也可以是public
@Test
void Test01() {
System.out.println("测试一");
}
@Test
void Test02() {
System.out.println("测试二");
}
@Disabled
void Test03() {
System.out.println("测试三");
}
@BeforeAll
static void SetUp() {
System.out.println("Beforeall");
}
@AfterAll
static void TearDown() {
System.out.println("Afterall");
}
@BeforeEach
void BeforeEachTest() {
System.out.println(" BeforeEach");
}
@AfterEach
void AfterEach() {
System.out.println("AfterEach");
}
}
此时,可以选择运行的代码,下图为运行Test01()方法。
下图为运行所有方法(Test01()、Test01())
参数化
需要在pom.xml中添加
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-params --> <dependency> <groupId>org.junit.jupiter</groupId> <!--参数化--> <artifactId>junit-jupiter-params</artifactId> <version>5.9.1</version> </dependency>
//单参数
@ParameterizedTest
@ValueSource(ints = {1, 2, 3})
void Test04(int num) {
System.out.println(num);
}
@ParameterizedTest
@ValueSource(strings = {"1", "2", "3"})
void Test05(String number) {
System.out.println(number);
}
//多参数
@ParameterizedTest
@CsvSource({"1,2,3,''"})
void Test10(int x,String y,int z,String q){
System.out.println(x);
System.out.println(y);
//打印空字符串
System.out.println(q);
System.out.println(z);
System.out.println("============");
}
//参数注册
@ParameterizedTest
//csv获取参数
// (1,小明
// 2,花花)
@CsvFileSource(resources = "test01.csv")
void Test06(int num,String name) {
System.out.println(num +name);
}
public static Stream<Arguments> Generator() {
return Stream.of(Arguments.arguments(1, "张三"), Arguments.arguments(2, "马里奥"));
}
@ParameterizedTest
@MethodSource("Generator")
void Test07(int num, String name) {
System.out.println(num + ":" + name);
}
//断言 {断言相等、断言不相等、断言为空、断言不为空}
@ParameterizedTest
@ValueSource(ints = {1})
void Test08(int num) {
System.out.println(num);
//断言相等
Assertions.assertEquals(1, num);
//断言不相等
Assertions.assertNotEquals(2, num);
//断言为空
String s =null;
Assertions.assertNull(s);
Assertions.assertNotNull(num);
}
@ParameterizedTest
@CsvSource({"1,2,3"})
void Test09(int x ,int y,int z) {
//断言相等
Assertions.assertArrayEquals(new int[]{1, 2, 3}, new int[]{x,y,z});
}