up junit5 doc

This commit is contained in:
Shuaishuai Dai 2023-02-03 16:23:41 +08:00
parent 8c52dbc46d
commit 559c47c42a

View File

@ -1,6 +1,6 @@
## JUnit5
## `JUnit5
#### 注解
# 注解
JUnit4包路径**org.junit**
@ -32,7 +32,7 @@ JUnit5包路径 **org.junit.jupiter.api**
| unknown | @TestClassOrder | 用于@Nested注解的测试类可以配置[测试类执行顺序](https://links.jianshu.com/go?to=https%3A%2F%2Fjunit.org%2Fjunit5%2Fdocs%2Fcurrent%2Fuser-guide%2F%23writing-tests-test-execution-order-classes)。 |
| unknown | @TestFactory | 测试工厂 |
#### 断言
# 断言
| 断言方法 | 描述 |
| ---------------------- | ------------------------------------------------------------ |
@ -55,7 +55,7 @@ Junit4断言静态类**org.junit.Assert**
JUnit5断言静态类**org.junit.jupiter.Assertions**
#### 其他
# 其他
**引擎**
@ -75,3 +75,141 @@ Junit5**junit-jupiter-engine**
| @Transactional | 不进行事务提交 等同于@RollBack(value=true) |
| @Commit | 进行事务提交 等同于@RollBack(value=false) |
# 案例
## 嵌套测试+Order
执行TestClass 会执行该类下得所有方法
@ Nested用于表示注释类是嵌套类。 可以共享的非静态测试类 (即内部类) 使用enclosed类的实例进行设置和状态。封闭类可以是顶级测试类也可以是 另一个 @ Nested测试类嵌套可以任意深。
@TestMethodOrder注解 设置方法执行顺序策略 有以下三种策略可以设置
| 策略类 | 描述 |
| ----------------------------- | -------------------------- |
| MethodOrderer.Alphanumeric | 根据方法的字母数字排序 |
| MethodOrderer.OrderAnnotation | 根据@Order注解进行排序执行 |
| MethodOrderer.Random | 随机执行 |
### @Nested+@TestMethodOrder(MethodOrderer.Alphanumeric.class)
**实例代码:**
```java
package com.guadou.erp.service.wms.service.impl;
import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
/**
* @author dss
* @since 2023/2/3
*/
public class TestNested {
@Nested
@TestMethodOrder(MethodOrderer.Alphanumeric.class)
class TestClass{
@Test
void testa(){
System.out.println("testa");
}
@Test
void testb(){
System.out.println("testb");
}
@Test
void testc(){
System.out.println("testc");
}
}
}
```
### @Nested+@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
**输出信息:**
```java
testa
testb
testc
```
**实例代码:**
```java
package com.guadou.erp.service.wms.service.impl;
import org.junit.jupiter.api.*;
/**
* @author dss
* @since 2023/2/3
*/
public class TestNested {
@Nested
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
class TestClass{
@Test
@Order(3)
void testa(){
System.out.println("testa");
}
@Test
@Order(1)
void testb(){
System.out.println("testb");
}
@Test
@Order(2)
void testc(){
System.out.println("testc");
}
}
}
```
### @Nested+@TestMethodOrder(MethodOrderer.Random.class)
**实例代码:**
```java
package com.guadou.erp.service.wms.service.impl;
import org.junit.jupiter.api.*;
/**
* @author dss
* @since 2023/2/3
*/
public class TestNested {
@Nested
@TestMethodOrder(MethodOrderer.Random.class)
class TestClass{
@Test
void testa(){
System.out.println("testa");
}
@Test
void testb(){
System.out.println("testb");
}
@Test
void testc(){
System.out.println("testc");
}
}
}
```
**输出:**
```java
二月 03, 2023 4:22:01 下午 org.junit.jupiter.api.MethodOrderer$Random <clinit>
信息: MethodOrderer.Random default seed: 4392369797561700
testa
testc
testb
```