EasyMock

使用 EasyMock 进行单元测试

http://www.ibm.com/developerworks/cn/opensource/os-cn-easymock/

下载地址:
http://easymock.org/Downloads.html

EasyMock 默认只支持为接口生成 Mock 对象

[b]1、构建Mock对象[/b]
[*]单个Mock对象 java.sql.ResultSet

ResultSet mockResultSet = EasyMock.createMock(ResultSet.class);

[*]多个 Mock 对象

IMocksControl control = EasyMock.createControl();
java.sql.Connection mockConnection = control.createMock(Connection.class);
java.sql.Statement mockStatement = control.createMock(Statement.class);
java.sql.ResultSet mockResultSet = control.createMock(ResultSet.class);


[b]2、添加Mock对象行为 Record [/b]

(1)对 Mock 对象的特定方法作出调用;
(2)通过 org.easymock.EasyMock 提供的静态方法 expectLastCall 获取上一次方法调用所对应的 IExpectationSetters 实例;
(3)通过 IExpectationSetters 实例设定 Mock 对象的预期输出。

2.1 设定预期返回值
例:
mockResultSet.getString(1);
expectLastCall().andReturn("My return value");

//方法总是返回"My return value"
//对参数值进行匹配时,默认采用 Object.equals() 方法
expectLastCall().andStubReturn("My return value");

2.2 设定预期异常抛出

IExpectationSetters<T> andThrow(Throwable throwable);
//设定抛出默认异常的函数
void andStubThrow(Throwable throwable);

2.3 设定预期方法调用次数

IExpectationSetters<T>times(int count);

mockResultSet.getString(1);
expectLastCall().andReturn("My return value").times(3);

[b]3 将 Mock 对象切换到 Replay 状态[/b]

//由EasyMock.createMock方法生产
EasyMock.replay(mockResultSet);

//由IMocksControl 接口提供的 createMock 方法生成
control.replay();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值