最重要的事說在前面:遇到一個你不熟悉的知識,一定要去官網仔仔細細的看官方文檔!一定要仔仔細細!一定要!(爾康鼻孔臉。。)
正篇:
一.使用
首先,當然是添加依賴,有人用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.感謝以上兩位博主。