Springboot 使用具体化类和配置来缩短单元测试时间

 更新时间:2021年11月04日 17:12:56   作者:timchen525  
这篇文章主要介绍了Springboot 使用具体化类和配置来缩短单元测试时间,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

具体化类和配置来缩短单元测试时间

我们在写完业务代码之后,都需要编写测试用例来验证代码逻辑是否正确,这样不仅方便自己后期检查,也方便后面接手的人快速测试我们的代码。

编写测试用例时,我们可以通过如下快捷键:ctrl+shift+T,然后会出现如下提示:

点击,Create New Test....

通常,只是帮助我们生成一个包下对应的类,以及方法名,然后我们在类上面,简单粗暴的添加:

@RunWith(SpringRunner.class)
@SpringBootTest
public class SquirrelConfigTest{
@Test
}

注意:上述注解会将整个项目的类以及配置文件都加载进来,这样每执行一次测试用例,如果项目比较庞大,耗时就会很长。因此,我们可以指定相应要加载的类和配置文件,编写如下:

@RunWith(SpringRunner.class)
@EnableAutoConfiguration
@SpringBootTest(classes = {Test.class, Test2.class})
public class SquirrelConfigTest {
}

很明显上述耗时会短很多。

SpringBoot 简单的单元测试

一、为什么写单元测试

单元测试是开发者编写的一小段代码,用于检验目标代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试用于判断某个特定条件或特定场景下某个特定函数的行为。例如,用户可能把一个很大的值放入一个有序List中,然后确认该值出现在List 的尾部。或者,用户可能会从字符串中删除匹配某种模式的字符,然后确认字符串确实不再包含这些字符了。

单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。

在一般情况下,一个功能模块往往会调用其他功能模块完成某项功能,如业务层的业务类可能会调用多个DAO完成某项业务。对某个功能模块进行单元测试时,我们希望屏蔽对外在功能模块的依赖,以便将焦点放在目标功能模块的测试上。这时模拟对象将是最有力的工具,它根据外在模块的接口模拟特定操作行为,这样单元测试就可以在假设关联模块正确工作的情况下验证本模块逻辑的正确性了。

二、简单的spring boot单元测试的实现

1、首先写一个简单的接口,如下图所示:

三、编写单元测试

1、打开测试文件夹:

2、具体代码实现

配置的注解:

3、正确的情况下,如图所示:

错误的情况,如图所示:

因为和预期期望的返回数据不一致,所以报错:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 精致小巧的java相册制作方法

    精致小巧的java相册制作方法

    这篇文章主要为大家详细介绍了精致小巧的java相册制作方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Spring Boot整合邮箱发送邮件实例

    Spring Boot整合邮箱发送邮件实例

    大家好,本篇文章主要讲的是Spring Boot整合邮箱发送邮件实例,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • Java深入讲解二十三种设计模式之中的策略模式

    Java深入讲解二十三种设计模式之中的策略模式

    策略模式属于Java 23种设计模式中行为模式之一,该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。本文将通过示例详细讲解这一模式,需要的可以参考一下
    2022-05-05
  • Java Math.round(),Math.ceil(),Math.floor()的区别详解

    Java Math.round(),Math.ceil(),Math.floor()的区别详解

    这篇文章主要介绍了Java Math.round(),Math.ceil(),Math.floor()的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • redis setIfAbsent和setnx的区别与使用说明

    redis setIfAbsent和setnx的区别与使用说明

    这篇文章主要介绍了redis setIfAbsent和setnx的区别与使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java连接Sql数据库经常用到的操作

    Java连接Sql数据库经常用到的操作

    这篇文章主要介绍了Java连接Sql数据库经常用到的操作的相关资料,需要的朋友可以参考下
    2016-02-02
  • JVM的类加载器和双亲委派模式你了解吗

    JVM的类加载器和双亲委派模式你了解吗

    这篇文章主要为大家详细介绍了JVM类加载器和双亲委派模式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • Installij IDEA install或clean项目的使用

    Installij IDEA install或clean项目的使用

    这篇文章主要介绍了Installij IDEA install或clean项目的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Java中的HashMap和Hashtable区别解析

    Java中的HashMap和Hashtable区别解析

    这篇文章主要介绍了Java中的HashMap和Hashtable区别解析,HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的区别,主要的区别有线程安全性、同步和速度,需要的朋友可以参考下
    2023-11-11
  • 关于springboot 中使用httpclient或RestTemplate做MultipartFile文件跨服务传输的问题

    关于springboot 中使用httpclient或RestTemplate做MultipartFile文件跨服务传输

    这篇文章主要介绍了关于springboot 中使用httpclient或RestTemplate做MultipartFile文件跨服务传输的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01

最新评论