在实际开发中,每当完成一个功能接口或业务方法的编写后,通常都会借助单元测试验证该功能是否正确。Spring Boot对项目的单元测试提供了很好的支持,在使用时,需要提前在项目的pom.xml文件中添加spring-boot-starter-test测试依赖启动器,可以通过相关注解实现单元测试。这里,以之前创建的chapter01项目为例对Spring Boot项目的单元测试进行使用演示,具体步骤如下。

  1.添加spring-boot-starter-test测试依赖启动器

  在项目的pom.xml文件中添加spring-boot-starter-test测试依赖启动器,示例代码如下。

  上述代码中,展示了Spring Boot框架集成单元测试提供的依赖启动器,其范围默认为test。需要说明的是,如果是使用Spring Initializr方式搭建的Spring Boot项目,会自动加入spring-boot-starter-test测试依赖启动器,无需开发者再手动添加。

  2.编写单元测试类和测试方法

  在项目中添加测试依赖启动器后,可以编写Spring Boot项目中相关方法对应的单元测试。如果是使用Spring Initializr方式搭建的Spring Boot项目,会在src.test.java测试目录下自动创建与项目主程序启动类对应的单元测试类。例如,chapter01项目的Chapter01ApplicationTests是自动生成的单元测试类,内容如文件1所示。

文件1 Chapter01ApplicationTests.java

  文件1中,Chapter01ApplicationTests是chapter01项目主程序启动类对应的单元测试类,该类自动生成了一个单元测试方法的示例。第9行代码的@SpringBootTest注解用于标记该类为测试类,并加载项目的ApplicationContext上下文环境;第8行代码的@RunWith注解是一个测试类运行器,用于加载Spring Boot测试注解@SpringBootTest。

  下面,在单元测试类Chapter01ApplicationTests中添加HelloController类中hello()请求控制方法对应的单元测试方法,示例代码如下。

  上述代码中,先使用@Autowired注解注入了HelloController实例对象,然后在helloControllerTest()方法中调用了HelloController类中对应的请求控制方法hello(),并输出打印结果。

  选中单元测试方法helloControllerTest(),鼠标右键单击“Run ‘helloControllerTest()’”选项启动测试方法,此时控制台的打印信息如图1所示。

图1 helloControllerTest()单元测试方法效果

  从图1可以看出,控制台打印出了“hello Spring Boot”信息,说明了控制类HelloController中编写的hello()方法正确,并且单元测试方法执行成功。

怎样使用Spring Boot项目的单元测试相关推荐

  1. 怎样使用Spring Boot项目的单元测试?

    在实际开发中,每当完成一个功能接口或业务方法的编写后,通常都会借助单元测试验证该功能是否正确.Spring Boot对项目的单元测试提供了很好的支持,在使用时,需要提前在项目的pom.xml文件中添加 ...

  2. 【spring boot】10.spring boot下的单元测试

    spring boot下的单元测试,思前想后还是需要单独用一章篇幅来看看. 然后在看了介绍和使用时候,我感觉并不想多去看了. 但是还是给后来人留下参考的路径: 官网说明:https://spring. ...

  3. 在Spring Boot项目中使用Spock框架

    转载:https://www.jianshu.com/p/f1e354d382cd Spock框架是基于Groovy语言的测试框架,Groovy与Java具备良好的互操作性,因此可以在Spring B ...

  4. 后端开发实践:Spring Boot项目模板

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达今日推荐:2020年7月程序员工资统计,平均14357元,又跌了,扎心个人原创100W+访问量博客:点击前往,查看更多 作者 ...

  5. 后端开发实践:Spring Boot项目模板,拿去用吧!

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:干掉 Navicat:这个 IDEA 的兄弟真香!个人原创100W+访问量博客:点击前往,查看更多 作者:无知者 ...

  6. Vue + Spring Boot 项目实战(二十一):缓存的应用

    重要链接: 「系列文章目录」 「项目源码(GitHub)」 本篇目录 前言 一.缓存:工程思想的产物 二.Web 中的缓存 1.缓存的工作模式 2.缓存的常见问题 三.缓存应用实战 1.Redis 与 ...

  7. 后端开发实践——Spring Boot项目模板

    在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为"第0个迭代"要做的事情.但是,当项目运行了一段时间之后再来反 ...

  8. 后端开发实践系列——Spring Boot项目模板

    在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为"第0个迭代"要做的事情.但是,当项目运行了一段时间之后再来反 ...

  9. 第2章 第一个Spring Boot项目

    开发工具选择 工欲善其事必先利其器,我们进行Java项目开发,选择一个好的集成开发工具(IDE)对提高我们的开发调试效率有非常大的帮助.这里我们选择大名鼎鼎的IDEA ,它全称 IntelliJ ID ...

最新文章

  1. 人工智能三年行动计划启动,推动人工智能和实体经济深度融合
  2. java中线程切换的开销
  3. 消息队列软件产品大比拼
  4. pynlpir + pandas 文本分析
  5. linux上安装telnet服务器:linux vmvare虚拟机 安装telnet redhat9
  6. vba php,VBA
  7. 【今日CV 计算机视觉论文速览】Fri, 22 Feb 2019
  8. [机器学习-原理篇]学习之线性回归、岭回归、Lasso回归
  9. mysql odbc 驱动_mysql odbc驱动 mysql odbc connector
  10. 李明顺专栏周5月12日:给门户支招
  11. Atitit 如何做数据分析 描述型:发生了什么?可视化仪表盘化很重要。 1 2. 诊断型:为什么会发生?结合历史记录 1 3. 预测型:可能发生什么? 2 4. 指导型 规划未来行动:我需要做什
  12. 微信小程序 图片轮播 视频
  13. C语言——二进制转为十进制
  14. 兵法三十六计第二计-围魏救赵。
  15. 四种形态图解_波浪理论:调整浪的四种形态(图解)
  16. 淘宝收藏加购对流量分配有影响吗?
  17. C# 操作.eml文件
  18. 机械爪-Solidworks图纸(三维图纸+二维图纸)
  19. 提高MES设备稼动率的管理策略
  20. Mjpeg-streamer源码学习笔记-Main-守护进程Daemon(二)

热门文章

  1. .Net中如何操作IIS(源代码)
  2. jupyter notebook出现cannot import name 'create_prompt_application'问题(Died Kernel)
  3. springMvc+mybatis+spring 整合 包涵整合activiti 基于maven
  4. App功能测试的注意点
  5. Linux内核中锁机制之完成量、互斥量
  6. String、StringBuffer与StringBuilder之间区别 (转载)
  7. CHUCK手把手带你搞定OPENSTACK
  8. Ubuntu + VirtualBox + windows xp互相访问
  9. 静态属性和静态方法2 - C++快速入门22
  10. JavaScript继承详解(四)