在我们开发Web应用时,经常会直接去观察结果进行测试。虽然也是一种方式,但是并不严谨。

作为开发者编写测试代码来测试自己所写的业务逻辑,以提高代码的质量、降低错误方法的概率以及进行性能测试等。而开发者写得最多就是单元测试。

引入spring-boot-starter-testSpringBoot的测试依赖。该依赖会引入JUnit的测试包,也是我们用的做多的单元测试包。

而Spring Boot在此基础上做了很多增强,支持很多方面的测试,例如JPA、MongoDB、Spring MVC(REST)和Redis等。

接下来主要是测试业务逻辑层的代码,REST和Mock测试。

JUnit介绍

JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。

JUnit有它自己的JUnit扩展生态圈,多数Java的开发环境都已经集成了JUnit作为单元测试的工具。

这里使用的是JUnit4.x版本,JUnit中有两个重要的类Assume+Assert,以及重要的注解:BeforeClass、AfterClass、After、Before、Test和Ignore。

BeforeClass和AfterClass在每个类的开始和结束的时候运行,需要static修饰方法。而Before和After则是在每个测试方法的开始和结束的时候运行。

代码片段:TestDeployApplication.class是自己编写的Spring Boot启动类。

@RunWith(SpringRunner.class)@SpringBootTest(classes = {TestDeployApplication.class})public class UnitTest1 {@BeforeClass    public static void beforeClass() {        System.out.println("=================BeforeClass================");    }@AfterClass    public static void afterClass() {        System.out.println("=================AfterClass================");    }@Before    public void beforeTest() {        System.out.println("before test");    }@After    public void afterTest() {        System.out.println("after test");    }@Test    public void test1() {        System.out.println("test1");    }@Test    public void test2() {        System.out.println("test2");    }}

JUnit的Assert类

Assert类中常用的方法:

  • assertEquals(“提示信息”,A,B):当判断A是否等于B,不等于就抛出错误。比较对象是调用的是equals()方法

  • assertSame(“提示信息”,A,B):判断对象是否相同

  • assertTrue(“提示信息”,A):判断条件A是否为真

  • assertFalse(“提示信息”,A):判断条件是否为假

  • assertNotNull(“提示信息”,A):判断对象是否不为空

  • assertNull(“提示信息”,A):判断对象是否不为空

  • assertArrayEqual(“提示信息”,A,B):判断数组A和数组B是否相等

JUnit的Suite

JUnit的Suite设计就是一次性运行一个或多个测试用例,Suite可以看作是一个容器,用来把测试类归类在一起,并把他们作为一个集合来运行,运行器启动Suite。

@RunWith(Suite.class)@SuiteClasses({UnitTest1.class,UnitTest2.class})public class MainTest{    }

如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。今天就到这里,学废了,记得在评论区留言:打卡。

好文推荐

2021软件测试工程师面试题汇总(内含答案)-看完BATJ面试官对你竖起大拇指!

什么样的人适合从事软件测试工作?

软件测试和软件开发哪个发展更好

那个准点下班的人,比我先升职了…

Spring Boot单元测试入门实战之关于JUnit相关推荐

  1. Spring Boot 高效入门实战

    凭借开箱即用,远离繁琐的配置等特性,Spring Boot 已经成为 Java 开发者人人必学必会的开源项目.那么开发者该如何快速上手Spring Boot 呢? 进入Spring Boot世界 Ja ...

  2. Spring Boot 单元测试详解+实战教程

    转载自   Spring Boot 单元测试详解+实战教程 Spring Boot 的测试类库 Spring Boot 提供了许多实用工具和注解来帮助测试应用程序,主要包括以下两个模块. spring ...

  3. IDEA Java Junit单元测试入门实战

    IDEA Java Junit单元测试入门实战 1.下载jar包 2.在IDEA中添加jar包 3.创建单元测试代码 junit的使用: junit不是javase的一部分,想要使用需要导入jar包. ...

  4. spring boot单元测试

    做一个稳健的开发,写一首漂亮的单元测试是少不了的 首先要分清几个概念:测试方法.测试类.测试集.测试运行器. 测试方法就是用 @Test 注解的一些函数. 测试类是包含一个或多个测试方法的一个 XxT ...

  5. Spring Boot Mybatis入门示例

    Spring Boot Mybatis 入门示例 基于Spring Boot 2.3.4,Junit5 步骤说明     整个工程的最终目录结构如下,添加文件或者新建的目录的参考: └─src├─ma ...

  6. 芋道 Spring Boot 快速入门

    点击上方"芋道源码",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 原创 | Java 2019 超神之路,很肝~ 中文详细注释的开源项目 RP ...

  7. 保姆级教程:Spring Boot 单元测试

    作者 | 小名同学 来源 | https://eamonyin.blog.csdn.net/ 一. 单元测试的概念 概念: 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和 ...

  8. Spring Boot 揭秘与实战(二) 数据缓存篇 - EhCache

    文章目录 1. EhCache 集成 2. 源代码 本文,讲解 Spring Boot 如何集成 EhCache,实现缓存. 在阅读「Spring Boot 揭秘与实战(二) 数据缓存篇 - 快速入门 ...

  9. springboot做网站_Github点赞接近 100k 的Spring Boot学习教程+实战项目推荐!

    " 本文已经收录进:awesome-java (Github 上非常棒的 Java 开源项目集合) 很明显的一个现象,除了一些老项目,现在 Java 后端项目基本都是基于 Spring Bo ...

最新文章

  1. ## **scrapy+kafka+sparkstream爬取京东Iphone12评论储存数据**
  2. Excel Sheet Column Number
  3. Intellij新建Spring项目引入用户目录下的Spring jar包
  4. oracle执行计划的rows不对,Oracle执行计划——all_rows和first_rows(n)优化器模式
  5. python网格划分_在python中创建一个2d网格
  6. php四种标量,php的标量数据类型和复合数据类型,php四种标量
  7. C#程序在线升级代码---webservice
  8. matlab2008设置子函数断点无效,程序不在断点处停止
  9. 如何设置EditPlus保存时不生成bak文件
  10. 站点信息 统计 内容 概况
  11. 高德地图联手中国气象局,积水地图 AI 版实时预测道路积水
  12. 【java笔记】线程(4):匿名内部类创建线程
  13. Android无界面编程之使用Service
  14. Java学习手册:Java面向对象面试问题
  15. 《前端技巧》文件下载功能在苹果手机中的特殊处理
  16. 如何减小电压跟随器输出电阻_一文看懂放大器和比较器差别
  17. Java-微信公众号-上(环境搭建+基础回复功能)
  18. oeasy教您玩转vim - 3 - # 打开文件
  19. 如何保存网站上的背景图片
  20. you-get遇到的坑

热门文章

  1. 【免费毕设】ASP.NET 城市酒店入住信息管理系统 (源代码+lunwen)
  2. 【毕业设计】jsp+sql毕业选题系统(论文)
  3. java limit_Java 8 Stream:limit()和skip()之间的区别
  4. flask 上传excel 前端_flask 笔记
  5. python get sheet_Python模块学习 - openpyxl
  6. mysql 当前用户连接数,查看mysql当前连接数的方法详解
  7. php列表代码怎么做的,php项目实战:代码讲解之订单列表问题
  8. erdas遥感图像几何校正_【答疑】为什么要进行遥感图像处理?
  9. IPWorks V6 Sax CommStudio Fall 2005 破解
  10. 区块链现状:最初的炒作消退,将迎来大量新应用(第一部分)