SpringBoot Test “最佳” 实践
SpringBoot Test Maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
SpringBoot Test 实践
包含 测试基类、Demo 两部分
测试基类
import org.junit.FixMethodOrder;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.transaction.annotation.Transactional;
/**
* 测试基类
*
* <p>
* 可以用两种命令来跳过测试
* <p>
* mvn clean install -DskipTests <br/>
* mvn clean install -Dmaven.test.skip=true
* <p>
* - DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下 <br/>
* - Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类
*
* @author shitian.lan
* @version 0.1
* @create.date 2022-12-08 14:16
* @modify.date 2022-12-08 14:16
* @since 0.1
*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = XXXApplication.class)
@WebAppConfiguration
@Transactional
@ActiveProfiles("dev")
@FixMethodOrder(MethodSorters.JVM)
public abstract class SpringBootTestAbstract {
}
- XXXApplication 为 SpringBoot启动类,根据具体情形修改
- @Transactional 注解标识单元测试,回滚事务;
- 如果要提交事务,需要增加注解 @Rollback(false)
实现
方式一:新建
public abstract class XXXTest extends SpringBootTestAbstract {
}
XXXTest 为 测试类,根据具体情形修改
方式二:IDEA 快捷键 创建
-
快捷键创建
快捷键
Ctrl
+Shift
+T
选择所需要测试的方法
-
继承
SpringBootTestAbstract
public abstract class XXXTest extends SpringBootTestAbstract { }
XXXTest 为 快捷键创建 测试类