坚信科学,分享技术

2018全新版本,未来在blog.54chen.com更新博客!

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

Tag Archives: easymock

利用h2database和easymock轻松不依赖环境单元测试(rose等spring环境万能)

前言 写java时间久了,慢慢就变得自信了,也可能是变得懒了,或者是项目进度的原因,test case越写越少,越来越不写了。 还有一个很大的原因是,DB环境不好搞,老是有垃圾数据,依赖的东西太多,有memcache、有别人的服务,等等等等,都是没有test case良好的理由。 下面将以rose环境下,使用easy mock搞写第三方依赖和h2database搞写DB环境为例子,简单讲述如何轻松测试。 完整代码可以在 https://github.com/XiaoMi/rose 下载到。 依赖的包介绍 spring-test:提供一些基础的spring环境的支持,如果你不是spring环境,可能不需要。 h2:一个内存数据库,使用它的原因是,我们的业务大多数时候使用的都是mysql,而h2有一个mysql模式,可以支持绝大多数的mysql的SQL语句。 easymock:以前在五四陈科学院提到过的利器,用来模拟各种调用的工具。 pom定义为:       <dependency>       <groupId>org.springframework</groupId>       <artifactId>spring-test</artifactId>       &l

Continue reading

Posted in java | Tagged , | 5 Comments

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

在写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(); …

Continue reading

Posted in java | Tagged , | 2 Comments