EasyMock使用总结
最重要的事说在前面:遇到一个你不熟悉的知识,一定要去官网仔仔细细的看官方文档!一定要仔仔细细!一定要!(尔康鼻孔脸。。)
正篇:
一.使用
首先,当然是添加依赖,有人用maven,有人用ant或者mantis,每个人不一样,嗯,添加依赖。然后如果你需要mock一个类而不是接口的话,需要添加objenesis的依赖和jar包。(easymock3.0及以上适用)
二.你可能得事先了解的一些api
1.createControl,如果在你需要在相对复杂的测试用例中使用多个 Mock 对象,EasyMock 提供了另外一种生成和管理 Mock 对象的机制:
1 @Before 2 protected void setUp() throws Exception { 3 super.setUp(); 4 IMocksControl control = EasyMock.createControl(); 5 servlet = new GetIdeationsServlet(); 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.感谢以上两位博主。