5步学完spring boot单元测试,与postman有什么优点?

风格不统一 提交于 2020-03-17 01:25:48

目前大多数项目已经实现了前后端分离。作为后端开发,在开发完成后很有必要进行接口的自测。目前主流的postman,现在还有新出来postwoman,实际上idea也有支持HTTP测试。

平时一般都是用上面的工具自测也就够了,但是他们都是基于接口层面的http请求测试!对于单元测试,他们都不能很好的实现,还是springboot的单元测试最合适的。
今天就来搭建一下spring boot的单元测试,再来感受他们各自的优点。

1、添加依赖

添加依赖

2、创建父类

在项目里有可能会出现下面的情况,也就是idea并没有把test文件夹下面的文件当成源文件,解决步骤也简单。两步搞定:
不能识别
a、首先在File下的Project Strncture 如下图。
不能识别解决步骤1
b、然后如下图,在modules中选中对应的项目,然后选择右边test下面的Java文件夹,单击上面的Test,就完成了。这个不仅能解决test,其他的也可以。比如新建一个源文件,如果不能识别,那么也可以这样操作。
不能识别解决步骤2
最后在test源文件下面创建测试的父类,这个类作为父类,可以在类的注解上加一些通用的注解,比如@RunWith、@SpringBootTest。这样作为其他测试类只用继承这个类就行了。而且可以在父类里面做一些统一的配置之类的。
建一个测试父类

3、创建具体测试类

具体的测试类,继承至上面的父类,然后在具体的测试方法上面加上@Test,就可以实现测试了!利用断言Assert进行测试。
具体测试类

4、总测试类

spring boot有一个我觉得最好的功能,需要单独拉出来说一下,那就是全测试。只需要在类上加上@Suite注解,在里面加上你写的测试类,那么只需要执行这一个类,加入进去的测试类里面的测试方法都会执行一遍。
所有测试类

5、其他功能

测试里面还有一个很好的一个注解@Transactional,这个和平时的事务注解完全不同,加上这个注解可以使这个方法对数据库的操作进行回滚。如下这个图片就不会保存到数据库,结合上@Rollback注解可以控制。@Transactional是否有用,默认true,具体如下:
事务.

6、总结

上面总结spring boot单元测试常用和好用的几个注解,基本能满足我们平时的需求。还有几个注解也是可以了解的:

@Before:注释的方法会在这个类每个测试方法之前运行,可以做一些初始化或记录。

@BeforeClass:注释静态方法,在所有方法之前执行一次,一般用于公共配置。

@After:注释的方法会在这个类每个测试方法之后运行,一般用于重置某些变量。

@AfterClass:所有方法之后执行一次,一般用清理作用,比如数据库连接。

@Ingore:注释的方法不会被执行。

对比
spring boot的测试主要针对方法层面,并且可批量、可回滚。
postman、postwoman针对接口进行http测试,用这个比较多,创建的测试接口可保存、分类。(我几年前的接口都在,可以记录我做过那些项目)
idea的http测试用的不多,不是太了解!不过比postman好的是少开一个软件,一个软件搞定开发和测试。

只有多方面的学习了解,才能知道他们的优缺点,然后才能在具体的场景选择合适的工具,提升工作效率。

Java程序员日常学习笔记,如理解有误欢迎各位交流讨论!
IT乐知 程序员的私房笔记

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!