1 能够帮助解耦设计。即以接口设计为中心
2 检查你的代码使用其他对象的情况。通过为mock设置期望的行为,我们可以验证(verify)我们的代码是否正确的使用了我们被mock的接口
3 对我们的代码从里到外进行测试
5 使得与硬件设备交换、远程系统的开发更容易。
6 可以推迟我们要实现的类。因为我们可以通过mock去模拟接口的实现,所以前期我们可以不用现实现接口。
7 促进 基于接口的设计
8 鼓励多使用组合而不是继承
9 可以精炼接口
10 可以测试那些 不太容易发生,不太可能和一些异常情况
下载 easymock 最新版本是 2.2
看到他的 document也很简单
最重要的几句话
To get a Mock Object, we need to
create a Mock Object for the interface we would like to simulate,
record the expected behavior, and
switch the Mock Object to replay state.
意思是说我们用easymock来做 必须做三点
1 创建接口的 mock类
2 记录期望的行为
3 把mock对象 设置为 replay状态
4 verify 是可选的 比如记录方法调用的次数等
好来写个东东试试
先写测试类(虽然书上这么建议,可是我在实际项目中 还是经常是先写 接口,而不是先写测试,感觉不太习惯。)
package ex2;
import static org.junit.Assert.*;
import static org.easymock.EasyMock.*;
import org.junit.Before;
import org.junit.Test;
public class StrategyuseTest {
private Strategy mock;
private Strategyuse strategyuse;
@Before
public void setUp() throws Exception {
mock=createMock(Strategy.class);
strategyuse=new Strategyuse();
strategyuse.setStrategy(mock);
}
@Test
public void testAddtwoint() {
相关专题
- (279次浏览)Java远程通讯的6种可选技术及原理
- (90次浏览)多种计时器的比较与分析
- (64次浏览)Struts+Spring+Hibernate整合例子
- (59次浏览)手机开发平台指南、教程和资料介绍
- (46次浏览)深入探索 高效的Java异常处理框架
- (45次浏览)关于Java调用dll的方法
- (31次浏览)你真的应该再学习一种语言么?
- (30次浏览)用Struts2 标签迭代显示 Map
- (28次浏览)Java基础入门—java调用dll方法
- (27次浏览)集成Windows本地应用到Eclipse RCP 程序中



