EasyMock使用总结
最重要的事说在前面:遇到一个你不熟悉的知识,一定要去官网仔仔细细的看官方文档!一定要仔仔细细!一定要!(尔康鼻孔脸。。)
正篇:
一.使用
首先,当然是添加依赖,有人用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使用总结的更多相关文章
- 测试--easymock的使用
使用场景:对于调用其它类中的方法,但是还没有编写完,使用easymock进行单元测试,它提供这些没有编写完的代码期待的默认值. 使用步骤: step1: pom引入: <dependency&g ...
- Mock之easymock, powermock, and mockito
easymock, powermock, and mockito Easymock Class Mocking Limitations To be coherent with interface mo ...
- easymock所测试的方法内部新NEW对象的处理
问题:当记录的方法的参数是方法所在类内部新NEW的对象时,静态的记录方法交互就会失效,例如 调用的方法: public calss A{ public void method(User u){ u.s ...
- easymock+junit+spring学习·
Easymock学习 Author:luojie 1. Easymock简介 EasyMock 是一套通过简单的方法对于指定的 ...
- PowerMock与EasyMock的应用(转)
Leader请求在做Junit测试的时辰,Mock掉各个办法之间的依附.这两天进修了下PowerMock的应用. PowerMock是EasyMock的一个扩大,参加了static,final,pri ...
- 窥探EasyMock(1)基础使用篇
EasyMock的应用分为5步: 1. 使用 EasyMock 生成 Mock 对象: SomeInterface mockObj = createMock(SomeInterface.class); ...
- 窥探EasyMock(2)进阶使用篇
from:http://www.iteye.com/topic/310313 1. 生成 Mock 对象 如何创建一个需要严格遵守调用顺序的mock对象? SomeInterface mockObj ...
- easymock入门贴
from:http://macrochen.iteye.com/blog/298032 关于EasyMock常见的几个问题, 这里(http://ozgwei.blogspot.com/2007/06 ...
- 使用 EasyMock 更轻松地进行测试
from:http://www.ibm.com/developerworks/cn/java/j-easymock.html 测试驱动开发是软件开发的重要部分.如果代码不进行测试,就是不可靠的.所有代 ...
- EasyMock 使用方法与原理剖析
from:http://www.ibm.com/developerworks/cn/opensource/os-cn-easymock/ Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一 ...
随机推荐
- GPU驱动兼容性问题
GPU驱动兼容性问题 问题描述: 将笔记本的GTX860M 的驱动升级到了376.09版本,出现登陆界面,输入密码后黑屏. 解决思路: 由于正常显示登陆窗口,且可以输入密码,基本排除硬件问题和集成显卡 ...
- git 命令行 修改文件 并push(阿里云)
==============安装git后的准备https://code.aliyun.com/profile/keyshttps://code.aliyun.com/help/ssh/README = ...
- spring eureka required a bean of type 'com.netflix.discovery.DiscoveryClient' that could not be found.
spring在集成第三方过程很容易出现类名相同,且基本作用相同的类.这样给初学者带来一定的困惑. 导致用错类而出现以下问题. required a bean of type 'com.netflix. ...
- BASIC-20_蓝桥杯_数的读法
示例代码: #include <stdio.h>#include <string.h>#define N 10 char num[N] = {0} ; void yuyin(i ...
- bzoj 4929: 第三题
Description 给定n,b,c,d,e以及A0,A1,···,An−1,定义 xk=b×c^4k+d×c^2k+e f(x)=Sigma(Aix^i),0<=i<=n-1 请你求出 ...
- appium定位方法
1.id定位 driver.find_element_by_id("这里是resource-id") 2.name定位 (新版本的appium 1.7 已经没有这个定位方法了) d ...
- Java-Runoob-高级教程-实例-数组:08. Java 实例 – 数组填充
ylbtech-Java-Runoob-高级教程-实例-数组:08. Java 实例 – 数组填充 1.返回顶部 1. Java 实例 - 数组填充 Java 实例 以下实例我们通过 Java Ut ...
- Unity3D 3D模型在GUI之上显示
原来旧的办法是,在主相机上加一个Panel,把3D模型显示在Panel上面,感觉这个方法不怎么好,现在进行改进: 现在用了两个相机,一个相机显示3D模型,另外一个是主相机.还需要GUITexture来 ...
- Mysql-binlog的移动和归档
#!/bin/bash # To backup and archive binlogs. declare -i NUM=0 declare -i SUM=0 SUM=`/bin/ls -l mysql ...
- Linux 期中架构 rsync
上篇 Rsync rysnc查看版本 --version 全量 与增量在效率上有区别 cp mv scp --全量复制 rsync --增量复制 rsync利用的是quick ch ...