最重要的事说在前面:遇到一个你不熟悉的知识,一定要去官网仔仔细细的看官方文档!一定要仔仔细细!一定要!(尔康鼻孔脸。。)
正篇:
一.使用
首先,当然是添加依赖,有人用maven,有人用ant或者mantis,每个人不一样,嗯,添加依赖。然后如果你需要mock一个类而不是接口的话,需要添加objenesis的依赖和jar包。(easymock3.0及以上适用)
二.你可能得事先了解的一些api
1.createControl,如果在你需要在相对复杂的测试用例中使用多个 Mock 对象,EasyMock 提供了另外一种生成和管理 Mock 对象的机制:
1 @Before2 protected void setUp() throwsException {3 super.setUp();4 IMocksControl control =EasyMock.createControl();5 servlet = newGetIdeationsServlet();6 service =RollerFactory.getRoller().getUserManager();7 request = control.createMock(HttpServletRequest.class);8 response = control.createMock(HttpServletResponse.class);9 session = control.createMock(HttpSession.class);10 servletConfig = control.createMock(ServletConfig.class);11 servletContext = control.createMock(ServletContext.class);12 rollersession = control.createMock(RollerSession.class);13
14
15 servlet.init(servletConfig);16
17
18 }
IMocksControl 的对象,该对象能创建并管理多个 Mock 对象。
2.createMock, 就像上面代码所示,你创建了管理对象IMockControl,就可以通过它去mock你要mock的对象。
3.有了createControl和createMock,也会有createNiceControl,createStrictControl和createNiceMock和createStrictMock。那么它们之间究竟有啥区别呢?官方api是这么说的
懒,其实就是调用顺序检测不检测的问题。什么是调用顺序?什么是调用顺序检测?http://skydream.iteye.com/blog/829333
4.http://www.cnblogs.com/alipayhutu/archive/2012/05/21/2512363.html其他的问题这里总结的已经非常好了!
5.感谢以上两位博主。