Springboot 使用具体化类和配置来缩短单元测试时间
作者:timchen525
具体化类和配置来缩短单元测试时间
我们在写完业务代码之后,都需要编写测试用例来验证代码逻辑是否正确,这样不仅方便自己后期检查,也方便后面接手的人快速测试我们的代码。
编写测试用例时,我们可以通过如下快捷键: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、正确的情况下,如图所示:
错误的情况,如图所示:
因为和预期期望的返回数据不一致,所以报错:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。