前言
单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是认为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。本文将带大家介绍几款主流的单元测试使用方法,希望可以帮到大家。
1、为什么要使用单元测试?
「好处:」
-
可以使用单元测试来完成模块功能的一个测试
-
使用单元测试可以更好的完成模块的回归测试
「在开发中一般要进行如下测试:」
-
单元测试:一般情况下就是完成我们模块功能的一个检测
-
回归测试:当我们开发好一个功能之后,这个功能是否会影响其他已经开发好的这个功能
-
集成测试:简单的说就是项目开发完成的时候,这个所有功能是否完整,以及功能之间是否存在bug
-
公测:进行公测
2、Junit的使用
「简介:」
- Junit是单元测试框架工具,在项目开发中是经常用到的,利用Junit4进行单元测试非常简单方便,所以熟悉Junit是很有必要的
「主要用法:」
3、Hamcrest的使用(Junit的一个补充)
「使用原因:」
-
使用过Junit的应该有体验:在实际开发中,一些基本的断言,如equal,null,true它们的可读性并不是很好。而且很多时候我们要比较对象、集合、Map等数据结构。这样我们要进行大段的字段获取再断言。或者干脆自己编写表达式并断言其结果
-
Junit4.4引入了Hamcrest框架,Hamcrest提供了一套匹配符,这些匹配符更接近自然语言,可读性高,更加灵活
-
需求:假设说加法的上面,加上一个不为null的一个断言,这个时候就出现了两个断言,这时候你就需要写两次,有没有办法只写一次呢?有
「Unit4新断言-Hamcrest的常用方法:」
- 字符相关匹配符
- 一般匹配符
- 数值相关匹配符
- 集合相关匹配符
4、Suit的使用
「需求:」
-
现在有30个实体,每个DAO和每个Service都编写了测试用例。所以至少有60个测试类,当我们开发一个功能的时候,我们需要检测当前开发好的功能是否影响了其他已经开发好的功能,这个时候需要运行这60个测试用例,只有所有的测试用例都没有问题,才确定当前开发的功能对其他功能是没有影响的
-
这个时候就需要运用Suit,Suit的作用就是可以一次性的运行多个测试用例
5、Stub(装)的使用
「解决的问题:」
-
假设两个人做开发,一个人做的是DAO,另外一个人做的是Service,现在的问题是DAO层还没有来得及开发,只是有约束规范(只有接口没有实现),现在是Service层需要测试,那怎么办呢?
-
Stub的思想就是:自己编写DAO的实现类使用Map集合来模拟数据库的数据以及访问的这个过程,就叫做Stub
「具体使用:」
- 首先声明DAO的接口
- 编写Service的实现类
- 编写Stub的DAO的实现类
- 编写测试的类
6、dbunit的使用
「主要用途:」
- dbunit是专门用来测试DAO层的,以后开发中DAO的测试就可以使用dbunit来进行
「使用流程:」
- 备份所有的表
- 备份一张表
- 插入测试数据
- 测试
- 还原这个数据
- 整体代码如下:
- 编写测试的基类
- 使用基类来完成测试
7、EasyMock的使用
「使用场景:」
- 第一个案例
- 关于这个的高级应用
8、SpringTest的使用
「简介:」
- 整合了Junit4框架,来做单元测试
「具体使用:」
- 编写基类
- 测试
结语
本篇关于单元测试的主流框架以及工具的介绍就先到这里结束了,后续会出更多关于单元测试系列文章,谢谢大家支持!