写点什么

第二节:SpingBoot 单元测试

作者:入门小站
  • 2022 年 1 月 17 日
  • 本文字数:1909 字

    阅读完需:约 6 分钟

第二节:SpingBoot单元测试

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@AutoConfigureMockMvcpublic 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 **/
@WebMvcTestpublic 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'


测试结果


本小结源码地址:


  • GitHub:https://github.com/mifunc/springboot/tree/main/lession1

  • Gitee:https://gitee.com/rumenz/springboot/tree/master/lession1

  • 原文:https://rumenz.com/rumenbiji/springboot-test.html


介绍


  • 我的博客 https://rumenz.com/

  • 我的工具箱 https://tooltt.com/

  • 微信公众号:【入门小站】



  • 关注【入门小站】回复【1001】获取 linux 常用命令速查手册

  • 关注【入门小站】回复【1003】获取 LeetCode 题解【java 语言实现】

  • 关注【入门小站】回复【1004】获取 Java 基础核心总结

  • 关注【入门小站】回复【1009】获取 阿里巴巴 Java 开发手册

发布于: 刚刚阅读数: 4
用户头像

入门小站

关注

还未添加个人签名 2020.01.18 加入

还未添加个人简介

评论

发布
暂无评论
第二节:SpingBoot单元测试