Spring配合easymock搞定不依赖环境的测试用例

spring easymock tutorial

在写java的test case的时候,往往有太多依赖环境的情况,WEB项目更甚,如果每次测试都要准备数据库或者其他环境,相当麻烦,换一个人就入手困难,在这种情况下,mock就是最好的选择。
Mock 对象能够模拟领域对象的部分行为,并且能够检验运行结果是否和预期的一致。领域类将通过与 Mock 对象的交互,来获得一个的测试环境。

入门

//准备一个mock
IMocksControl mocksControl = EasyMock.createStrictControl();
//创建录像
aDAO = mocksControl.createMock(AnalyzeResultDAO.class);
//录制 输入 期望输出
EasyMock.expect(aDAO.getARByLimit(type)).andReturn(ar);
//重放 表示录制结束
EasyMock.replay(aDAO);

//调用相关的类 验证结果是否正常
Assert.assertNotNull(analyzeResultBiz.getLastAR(type));

//验证是否使用了上面录制的DAO
EasyMock.verify(aDAO); 提高

* 配合spring如何做?

int type = 1;
AnalyzeResult ar = new AnalyzeResult();
ar.setName("123");
IMocksControl mocksControl = EasyMock.createStrictControl();
analyzeResultBiz = new AnalyzeResultBiz();
aDAO = mocksControl.createMock(AnalyzeResultDAO.class);
EasyMock.expect(aDAO.getARByLimit(type)).andReturn(ar);
EasyMock.replay(aDAO);
// 用spring提供的方法注入aurowired的字段
ReflectionTestUtils.setField(analyzeResultBiz, "analyzeResultDAO", aDAO, AnalyzeResultDAO.class);
Assert.assertNotNull(analyzeResultBiz.getLastAR(type));
EasyMock.verify(aDAO); 这样一录一用,看起来简单方便,实用美观大方,54chen强力推荐。

Ps:
所使用的包:

<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>2.4</version>
</dependency>


原创文章如转载,请注明:转载自五四陈科学院[http://www.54chen.com]

捐款订阅54chen
捐赠说明

java