最重要的事说在前面:遇到一个你不熟悉的知识,一定要去官网仔仔细细的看官方文档!一定要仔仔细细!一定要!(尔康鼻孔脸。。)

正篇:

一.使用

首先,当然是添加依赖,有人用maven,有人用ant或者mantis,每个人不一样,嗯,添加依赖。然后如果你需要mock一个类而不是接口的话,需要添加objenesis的依赖和jar包。(easymock3.0及以上适用)

二.你可能得事先了解的一些api

1.createControl,如果在你需要在相对复杂的测试用例中使用多个 Mock 对象,EasyMock 提供了另外一种生成和管理 Mock 对象的机制:

     @Before
protected void setUp() throws Exception {
super.setUp();
IMocksControl control = EasyMock.createControl();
servlet = new GetIdeationsServlet();
service = RollerFactory.getRoller().getUserManager();
request = control.createMock(HttpServletRequest.class);
response = control.createMock(HttpServletResponse.class);
session = control.createMock(HttpSession.class);
servletConfig = control.createMock(ServletConfig.class);
servletContext = control.createMock(ServletContext.class);
rollersession = control.createMock(RollerSession.class); servlet.init(servletConfig); }

IMocksControl 的对象,该对象能创建并管理多个 Mock 对象。

2.createMock, 就像上面代码所示,你创建了管理对象IMockControl,就可以通过它去mock你要mock的对象。

3.有了createControl和createMock,也会有createNiceControl,createStrictControl和createNiceMock和createStrictMock。那么它们之间究竟有啥区别呢?官方api是这么说的

aaarticlea/png;base64,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" alt="" />

懒,其实就是调用顺序检测不检测的问题。什么是调用顺序?什么是调用顺序检测?http://skydream.iteye.com/blog/829333

4.http://www.cnblogs.com/alipayhutu/archive/2012/05/21/2512363.html其他的问题这里总结的已经非常好了!

5.感谢以上两位博主。

EasyMock使用总结的更多相关文章

  1. 测试--easymock的使用

    使用场景:对于调用其它类中的方法,但是还没有编写完,使用easymock进行单元测试,它提供这些没有编写完的代码期待的默认值. 使用步骤: step1: pom引入: <dependency&g ...

  2. Mock之easymock, powermock, and mockito

    easymock, powermock, and mockito Easymock Class Mocking Limitations To be coherent with interface mo ...

  3. easymock所测试的方法内部新NEW对象的处理

    问题:当记录的方法的参数是方法所在类内部新NEW的对象时,静态的记录方法交互就会失效,例如 调用的方法: public calss A{ public void method(User u){ u.s ...

  4. easymock+junit+spring学习·

    Easymock学习                                Author:luojie 1.       Easymock简介 EasyMock 是一套通过简单的方法对于指定的 ...

  5. PowerMock与EasyMock的应用(转)

    Leader请求在做Junit测试的时辰,Mock掉各个办法之间的依附.这两天进修了下PowerMock的应用. PowerMock是EasyMock的一个扩大,参加了static,final,pri ...

  6. 窥探EasyMock(1)基础使用篇

    EasyMock的应用分为5步: 1. 使用 EasyMock 生成 Mock 对象: SomeInterface mockObj = createMock(SomeInterface.class); ...

  7. 窥探EasyMock(2)进阶使用篇

    from:http://www.iteye.com/topic/310313 1. 生成 Mock 对象 如何创建一个需要严格遵守调用顺序的mock对象? SomeInterface mockObj  ...

  8. easymock入门贴

    from:http://macrochen.iteye.com/blog/298032 关于EasyMock常见的几个问题, 这里(http://ozgwei.blogspot.com/2007/06 ...

  9. 使用 EasyMock 更轻松地进行测试

    from:http://www.ibm.com/developerworks/cn/java/j-easymock.html 测试驱动开发是软件开发的重要部分.如果代码不进行测试,就是不可靠的.所有代 ...

  10. EasyMock 使用方法与原理剖析

    from:http://www.ibm.com/developerworks/cn/opensource/os-cn-easymock/ Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一 ...

随机推荐

  1. spring initializr 创建项目时,依赖对应的 artifactId

    选择各个依赖时,对应的 artifactId 选择的依赖 artifactId名字 不选择依赖,默认包含的artifactId spring-boot-starter.spring-boot-star ...

  2. 使用scrapy框架爬取自己的博文(3)

    既然如此,何不再抓一抓网页的文字内容呢? 谷歌浏览器有个审查元素的功能,就是按树的结构查看html的组织形式,如图: 这样已经比较明显了,博客的正文内容主要在div 的class = cnblogs_ ...

  3. caffe跑densenet的错误:Message type "caffe.PoolingParameter" has no field named "ceil_mode".【转自CSDN】

    最近看了densenet这篇论文,论文作者给了基于caffe的源码,自己在电脑上跑了下,但是出现了Message type “caffe.PoolingParameter” has no field ...

  4. eclipse中的XML文件无法快捷键注释问题

    好多朋友都发现在ME6.0或跟高版本中“Ctrl+Shift+c”或者是“Ctrl+Shift+/”快捷键无论你怎么点,它就是不起作用,恼火吧? 百度 还是 google 都没有找到 合理的说法,更有 ...

  5. ASP.NET WEB SERVICE 创建、部署与使用

    PS: 开发工具 VS2010, 所有工程都为Debug状态,本人刚接触 Web Service,此文为菜鸟入门用例,高手勿笑! 转载请注明出处 :http://www.cnblogs.com/yyc ...

  6. SQL 实践和技巧 <2>

    转自   http://i.cnblogs.com/EditPosts.aspx?opt=1 几个小技巧   (1)||的使用: select ‘(‘||phone[1,3]||’)’phone[5, ...

  7. Qt5布局管理(二)——QDockWidget停靠窗口类

    转载:LeeHDsniper 停靠窗口类QDockWidget 实例效果 如右图所示,左半部分MainWindow是该窗口的中心窗口,右边的最下面两个停靠窗口可以跳出该窗口: 但是第一个停靠窗口只能停 ...

  8. 发邮件 文字+ 附件的方法(QQ or 网易 邮箱)

    #coding:utf-8import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIME ...

  9. SpringMVC 获取请求参数

    1.获取Request response对象 在SpringMVC的注解开发中,可以选择性的接收Request和Response对象来使用 2.获取request对象请求参数 a.通过request对 ...

  10. document.write覆盖问题

    1.不会覆盖页面: 如果仅仅是一句js语句:document.writeln('<span id=\'span1\'>嗯,你好</span>'); ps:\'是转义字符,代表' ...