EasyMock测试
2017-11-03 17:47
239 查看
使用如下方式在Maven中添加EasyMock的依赖:
Maven
EasyMock使用动态代理实现模拟对象创建,其基本步骤为以下四步:
以数据库应用为例的被测试代码如下:
Code
现在希望对UserServiceImpl进行测试,而UserDao开发组只给出接口,尚未完成功能实现。
使用Mock对UserDao进行模拟来测试UserServiceImpl。
(1).基本的测试代码如下:
Code
注意:
在EasyMock3.0之前,org.easymock.EasyMock使用JDK的动态代理实现Mock对象创建,因此只能针对接口进行Mock,org.easymock.classextension.EasyMock使用CGLIB动态代理创建Mock对象,可以针对普通类进行Mock。
在EasyMock3.0之后,org.easymock.classextension.EasyMock被废弃,使用org.easymock.EasyMock可以针对接口和普通类进行Mock对象创建。
(2).调用测试设定:
如果想测试UserServiceImpl调用了UserDao的getById方法3次,则使用如下代码即可:
Code
(3).方法异常:
如果想测试UserServiceImpl在调用UserDao的getById方法时发生异常,可以使用如下代码:
Code
在测试UserServiceImpl时就可以使用try-catch捕获Mock的异常。
(4).基本参数匹配:
上面的方法在Mock UserDao的getById方法时传入了“0001”的预期值,这种方式是精确参数匹配,如果UserServiceImpl在调用是传入的参数不是“0001”就会发生Unexpect method的Mock异常,可以使用下面的方法在Mock时进行参数匹配:
Code
isA()方法会使用instanceof进行参数类型匹配,类似的方法还有anyInt(),anyObject(), isNull(),same(), startsWith()......
(5).数组类型参数匹配:
如果UserServiceImpl在调用UserDao的方法时传入的参数是数组,代码如下:
Code
Code
Maven
以数据库应用为例的被测试代码如下:
Code
使用Mock对UserDao进行模拟来测试UserServiceImpl。
(1).基本的测试代码如下:
Code
在EasyMock3.0之前,org.easymock.EasyMock使用JDK的动态代理实现Mock对象创建,因此只能针对接口进行Mock,org.easymock.classextension.EasyMock使用CGLIB动态代理创建Mock对象,可以针对普通类进行Mock。
在EasyMock3.0之后,org.easymock.classextension.EasyMock被废弃,使用org.easymock.EasyMock可以针对接口和普通类进行Mock对象创建。
(2).调用测试设定:
如果想测试UserServiceImpl调用了UserDao的getById方法3次,则使用如下代码即可:
Code
如果想测试UserServiceImpl在调用UserDao的getById方法时发生异常,可以使用如下代码:
Code
(4).基本参数匹配:
上面的方法在Mock UserDao的getById方法时传入了“0001”的预期值,这种方式是精确参数匹配,如果UserServiceImpl在调用是传入的参数不是“0001”就会发生Unexpect method的Mock异常,可以使用下面的方法在Mock时进行参数匹配:
Code
(5).数组类型参数匹配:
如果UserServiceImpl在调用UserDao的方法时传入的参数是数组,代码如下:
Code
相关文章推荐
- easymock源代码学习笔记(1)
- easymock学习笔记(2)--mock对象创建过程
- easymock源码学习笔记(3)--录制
- easymock源码学习笔记(3)--回放
- unit test use EasyMock:Possible matches are marked with (+1):
- EasyMock 使用方法与原理剖析
- EasyMock日记1
- Junit和EasyMock的使用
- easymock的简单应用
- java.lang.VerifyError 在使用PowerMock EasyMock进行单元测试
- PowerMock概述
- Mocking的概念及常见Mocking框架概述
- 使用 EasyMock 更轻松地进行测试
- Spring中如何使用Mockito做单元测试
- EasyMock 使用方法与原理剖析
- PowerMock - mock静态方法
- Swagger+NodeJS Mock前端数据
- EasyMock 使用方法与原理剖析
- EasyMock tutorial – Getting Started
- easymock快速入门