JUnit5
测试代码必须写在工程目录 src/test/java 下,建议:不要写在业务代码目录下
- Test:被该注解修饰的就是测试方法;
- BeforeAll:被该注解修饰的必须是静态方法,会在所有测试方法之前执行,会被子类继承,取代低版本的BeforeClass;
- AfterAll:被该注解修饰的必须是静态方法,会在所有测试方法执行之后才被执行,会被子类继承,取代低版本的AfterClass;
- BeforeEach:被该注解修饰的方法会在每个测试方法执行前被执行一次,会被子类继承,取代低版本的Before;
- AfterEach:被该注解修饰的方法会在每个测试方法执行后被执行一次,会被子类继承,取代低版本的Before;
- DisplayName:测试方法的展现名称,在测试框架中展示,支持emoji;
- Timeout:超时时长,被修饰的方法如果超时则会导致测试不通过;
- Disabled:不执行的测试方法;
package com.testcase;
import com.util.Calc;
import org.junit.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.assertAll;
import static org.junit.jupiter.api.Assertions.assertEquals;
@DisplayName("测试用例别名")
public class junitDemoTest {
/*
* BeforeAll:被该注解修饰的必须是静态方法,会在所有测试方法之前执行
*/
@BeforeAll
public static void init() {
System.out.println("初始化BeforeAll");
}
/*
* BeforeAll:被该注解修饰的必须是静态方法,会在所有测试方法之后执行
*/
@AfterAll
public static void After() {
System.out.println("AfterAll");
}
/*
* BeforeEach:被该注解修饰的方法会在每个测试方法执行前被执行一次
*/
@BeforeEach
public void ca() {
System.out.println("BeforeEach");
}
/*
* AfterEach:被该注解修饰的方法会在每个测试方法执行后被执行一次
*/
@AfterEach
public void AfterE() {
System.out.println("AfterEach");
}
@DisplayName("assertAll")
@Test
void add() {
assertAll("加法",
() -> assertEquals(22, Calc.add(1, 21)),
() -> assertEquals(0, Calc.add(0, 0)),
() -> assertEquals(3, Calc.add(1, 2)));
}
/*
不执行的测试方法
*/
@Disabled
@DisplayName("assertEquals")
@Test
void fun() {
int a = 10;
assertEquals(10, a);
System.out.println("Disabled");
}
/*
* Timeout:超时时长,被修饰的方法如果超时则会导致测试不通过
*/
@Timeout(1)
@Test
public void time() throws InterruptedException {
Thread.sleep(1000);
}
}
- assertEquals()比较两个值是否相同;
assertEquals("预期结果","实际结果",message)
@Test
public void eq(){
int a = 10;
assertEquals(10,a);
}
- assertTrue()判断括号里面的参数是否为true
assertTrue("表达式",message)
@Test
public void eq(){
assertTrue('a' < 'b',"断言失败");
assertTrue(10 == 2,"xxx");
}
- assertAll()可以将多个测试语句(断言)放在一起执行,一条失败,则全部失败
assertAll("组名称","测试语句")
@Test
void add() {
assertAll("加法",
() -> assertEquals(22, Calc.add(1, 21)),
() -> assertEquals(0, Calc.add(0, 0)),
() -> assertEquals(3, Calc.add(1, 2)));
}