xzbaimildcat 2011-08-05
使用Junit进行简单的单元测试是一件很简单的事情,但如果测试类与外部类有依赖关系,这时候就不好测试了。现在运用EasyMock技术可以解决这种麻烦。
在使用easymock之前需要导入两个jar包,easymock.jar,easymockclassextension.jar。前面那个是针对接口进行代理,而后面那个jar文件是针对类进行代理。
注意:针对类进行代理就需要用到cglib技术,在整合SSH项目的时候,hibernate和spring都有自己的cglib的jar包。这时候会引起冲突。建议去掉hibernate的cglib-2.2.jar,保留spring的cglib-nodep-2.1.3.jar。
基本代码:
userService = (UserService)context.getBean("userService"); MockControl mock = MockClassControl.createControl(Userinfo.class); Userinfo user = (Userinfo)mock.getMock(); mock.expectAndDefaultReturn(user.getName(), "libo"); mock.replay(); List<Userinfo> userinfo = userService.findUserByName(user.getName()); Assert.assertEquals(new Integer(24), userinfo.get(0).getAge()); mock.verify();
唯一要解释的就是mock.expectAndDefaultReturn(user.getName(), "libo");第一个参数是被调用的方法,第二个是返回参数值。