参考博客: https://www.cnblogs.com/mzc1997/p/14306538.html
配置pom
junit-vintage-engine junit4
junit-jupiter-engine junit5
排除junit4使用junit5,两者在切换时要特别注意
pom
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
</dependency>
命名规范
单元测试类的命名规范为:被测试类的类名+Test。.
单元测试类中测试方法的命名规范为:test+被测试方法的方法名+AAA,其中AAA为对同一个方法的不同的单元测试用例的自定义名称。
junit5的使用
java
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
@ActiveProfiles("test")
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@DisplayName("Base Test junit5才有") // 显示名称通常用于IDE和构建中的测试报告
class DemoFlowfestApplicationTests {
@BeforeAll
public static void beforall(){
System.out.println("beforall***");
}
@Test
void contextLoads() {
System.out.println("run___1");
}
@Test
void contextLoads2() {
System.out.println("run___2");
}
@AfterAll
public static void afterall(){
System.out.println("after****");
}
}
beforall***
run___2
run___1
after****
@ActiveProfiles("test")
需要配置resources
junit4
java
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
// 让 JUnit 运行 Spring 的测试环境, 获得 Spring 环境的上下文的支持
@RunWith(SpringRunner.class)
// 获取启动类,加载配置,确定装载 Spring 程序的装载方法,它回去寻找 主配置启动类(被 @SpringBootApplication 注解的)
@SpringBootTest(value={"com.example.demoflowfest.DemoFlowfestApplication"}, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
//这里一定要有public
public class DemoFlowfestApplicationTestsTwo {
@Before
public void befer(){
System.out.println("befer***");
}
@Test
public void contextLoads() {
System.out.println("run___aa");
}
@Test
public void contextLoadsa() {
System.out.println("run___bb");
}
@After
public void after(){
System.out.println("after**");
}
}
返回值
befer***
run___bb
after**
befer***
run___aa
after**