SpingBoot 365计划开始更新了,计划手敲365个SpringBoot案例回顾总结形成知识体系。目前已经输出了32节的内容。所有源码托管在GitHub和Gitee上。
- 1.第一节:创建SpringBoot项目并运行HelloWorld.md
- 2.第二节:SpingBoot单元测试.md
- 3.第三节:SpringBoot中web项目推荐目录结构.md
- 4.第四节:SpringBoot中web模版数据渲染展示.md
- 5.第五节:SpringBoot常用注解介绍.md
- 6.第六节:SpingBoot基本配置一.md
- 7.第七节:SpringBoot高级属性配置二.md
- 8.第八节:SpringBoot指定配置文件配置三.md
- 9.第九节:SpringBoot在线文档Swagger2入门.md
- 10.第十节:SpringBoot中的日志管理.md
- 11.第十一节:Springboot整合log4j2日志.md
- 12.第十二节:Springboot多环境配置.md
- 13.第十三节:使用Lombok简化你的代码.md
- 14.第十四节:SpringBoot使用JdbcTemplate访问操作数据库基本用法.md
- 15.第十五节:SpringBoot使用JPA访问数据库.md
- 16.第十六节:SpringBoot使用JPA一对多,多对多访问数据库.md
- 17.第十七节:SpringBoot使用JPA实现用户角色多对多查询.md
- 18.第十八节:SpringBoot集成MyBatis注解方式访问数据库.md
- 19.第十九节:SpringBoot集成MyBatis(XML)方式访问数据库.md
- 20.第二十节:SpringBoot集成MyBatis实现分页.md
- 21.第二十一节:SpringBoot使用Mybatis
- 22.第二十二节:SpringBoot集成MyBatis-Plus实现增删改查.md
- 23.第二十三节:SpringBoot统一异常处理3种方式.md
- 24.第二十四节:SpringBoot中数据校验JSR303.md
- 25.第二十五节:SpringBoot中自定义一个JSR303规范的注解校验器.md
- 26.第二十六节:SpringBoot集成Redis配置的基本操作.md
- 27.第二十七节:SpringBoot中的stream实现消息队列.md
- 28.第二十八节:SpringBoot中使用Redis实现超时取消订单.md
- 29.第二十九节:SpringBoot中Redis实现消息订阅.md
- 30.第三十节:SpringBoot集成ehcache使用JVM内存模式缓存.md
- 31.第三十一节:SpringBoot集成ehcache使用Redis模式缓存.md
- 32.第三十二节:SpringBoot集成WebSocket.md
- 未完待续。。。。。
一般我们在写某个功能后,就会使用测试数据,验证我们的代码是否能输出预期的值。这时候就会用到单元测试。SpingBoot官方给我们提供了
spring-boot-starter-test
测试组件。
在上一节项目的基础上pom.xml引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
- test目录下创建测试类
- 创建
com.rumenz.lession2.HelloWorldTest2HelloWorld
文件
方法1
使用
@SpringBootTest
和@AutoConfigureMockMvc
注解。com.rumenz.lession2.HelloWorldTestHelloWorld
HelloWorldTestHelloWorld.java
@SpringBootTest
@AutoConfigureMockMvc
public class HelloWorldTestHelloWorld {
@Autowired
private MockMvc mockMvc;
@Test
public void testHelloWorld() throws Exception {
this.mockMvc.perform(MockMvcRequestBuilders.get("/")).andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.content().string(Matchers.containsString("入门小站")));
}
}
方法2
使用
@WebMvcTest
注解,com.rumenz.lession2.HelloWorldTest2HelloWorld
/**
* @className: HelloWorldTestHelloWorld
* @description: TODO 类描述
* @author: 入门小站 rumenz.com 微信公众号:入门小站
* @date: 2021/10/31
**/
@WebMvcTest
public class HelloWorldTest2HelloWorld {
@Autowired
private MockMvc mockMvc;
@Test
public void testHelloWorld() throws Exception {
this.mockMvc.perform(MockMvcRequestBuilders.get("/")).andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.content().string(Matchers.containsString("入门小站")));
}
}
跑测试
在@Test注解处右键,
Run 'testHelloWorld()' with 'Allocation Profiler'
测试结果
本小结源码地址:
介绍
- 我的博客 https://rumenz.com/
- 我的工具箱 https://tooltt.com/