Spring Boot 单元测试详解+实战教程编程语言
2023-06-13 09:20:46 时间
Spring Boot 的测试类库
Spring Boot 提供了许多实用工具和注解来帮助测试应用程序,主要包括以下两个模块。
开发进行只要使用 spring-boot-starter-test 启动器就能引入这些 Spring Boot 测试模块,还能引入一些像 JUnit, AssertJ, Hamcrest 及其他一些有用的类库,具体如下所示。
JUnit:Java 应用程序单元测试标准类库。 Spring Test Spring Boot Test:Spring Boot 应用程序功能集成化测试支持。 AssertJ:一个轻量级的断言类库。 Hamcrest:一个对象匹配器类库。 Mockito:一个Java Mock测试框架,默认支付 1.x,可以修改为 2.x。 JSONassert:一个用于JSON的断言库。 JsonPath:一个JSON操作类库。下面是 Maven 的依赖关系图。
以上这些都是 Spring Boot 提供的一些比较常用的测试类库,如果上面的还不能满足你的需要,你也可以随意添加其他的以上没有的类库。
测试 Spring Boot 应用程序添加 Maven 依赖
dependency groupId org.springframework.boot /groupId artifactId spring-boot-starter-test /artifactId version 1.5.10.RELEASE /version scope test /scope /dependency
1、 要让一个普通类变成一个单元测试类只需要在类名上加入 @SpringBootTest 和 @RunWith(SpringRunner.class) 两个注释即可。
2、 在测试方法上加上 @Test 注释。
如果测试需要做 REST 调用,可以 @Autowire 一个 TestRestTemplate。
@RunWith(SpringRunner.class) @SpringBootTest public class BBTestAA { @Autowired private TestRestTemplate testRestTemplate; @Test public void testDemo() { ... }
GET请求测试
@Test public void get() throws Exception { Map String,String multiValueMap = new HashMap (); multiValueMap.put("username","Java技术栈"); ActResult result = testRestTemplate.getForObject("/test/getUser?username={username}",ActResult.class,multiValueMap); Assert.assertEquals(result.getCode(),0); }
POST请求测试
@Test public void post() throws Exception { MultiValueMap multiValueMap = new LinkedMultiValueMap(); multiValueMap.add("username","Java技术栈"); ActResult result = testRestTemplate.postForObject("/test/post",multiValueMap,ActResult.class); Assert.assertEquals(result.getCode(),0); }
文件上传测试
@Test public void upload() throws Exception { Resource resource = new FileSystemResource("/home/javastack/test.jar"); MultiValueMap multiValueMap = new LinkedMultiValueMap(); multiValueMap.add("username","Java技术栈"); multiValueMap.add("files",resource); ActResult result = testRestTemplate.postForObject("/test/upload",multiValueMap,ActResult.class); Assert.assertEquals(result.getCode(),0); }
文件下载测试
@Test public void download() throws Exception { HttpHeaders headers = new HttpHeaders(); headers.set("token","javastack"); HttpEntity formEntity = new HttpEntity(headers); String[] urlVariables = new String[]{"admin"}; ResponseEntity byte[] response = testRestTemplate.exchange("/test/download?username={1}",HttpMethod.GET,formEntity,byte[].class,urlVariables); if (response.getStatusCode() == HttpStatus.OK) { Files.write(response.getBody(),new File("/home/javastack/test.jar")); }
推荐:Spring Boot Cloud 最强技术教程
16250.html
cjava相关文章
- Spring Boot 最新发布,支持 Java 19,这速度太快了。。
- SSH 框架总结与整合 | Spring学习笔记
- Spring 全家桶之 Spring Boot 2.6.4(一)- Quickstart
- Spring Boot整合RabbitMQ详细教程
- 解决Spring Boot项目放到服务器上运行出现时差问题
- 手把手教你 Spring Boot 整合 Reactor
- Spring Boot、Spring Cloud 自定义配置文件(如何整合配置中心)
- Spring Boot整合Mybatis Plus[极简教程]
- Spring-boot_Spring Boot
- 【Spring boot Nacos系列教程】Nacos第三篇:多环境配置
- SpringBoot|Spring-Data-Redis 验证码短信存储服务
- [Redis]Spring Boot中Redis Template集群配置
- Spring Boot 中使用@Async实现异步调用,加速任务执行!
- Spring Cloud Stream应用程序开发-创建消息处理器和发布器示例
- 基于Spring boot的外卖项目 瑞吉外卖Day11 实现Mysql读写分离
- Spring Boot 2.0 多图片上传加回显
- 使用spring boot和thrift、zookeeper建立微服务详解架构师
- spring-boot教程详解编程语言
- spring Boot(十九):使用Spring Boot Actuator监控应用详解编程语言
- Spring Boot(十二):spring boot如何测试打包部署详解编程语言
- Spring Boot(五):spring data jpa的使用详解编程语言
- 使用Spring boot 嵌入的tomcat不能启动: Unregistering JMX-exposed beans on shutdown详解编程语言
- php转java 系列1 Spring boot安装教程详解编程语言
- Spring Boot 2 快速教程:WebFlux 快速入门(二)
- Spring Boot 2.x :通过 spring-boot-starter-hbase 集成 HBase
- Spring Boot 2.0 的快速入门(图文教程)