拼吾爱程序人生

首页 » 其他编程 » Java » 使用Mockito 1.5监视普通对象
cobra - 2008-9-22 23:23:00
Mockito是一个针对Java的mocking框架。它与EasyMock和jMock很相似,但是通过在执行校验什么已经被调用,它消除了对期望行为(expectations)的需要。其它的mocking库需要你在执行记录期望行为(expectations),而这导致了丑陋的初始化代码。

正如Mockito用户、软件工程师Hamlet D'Arcy在其博客中所说,无需期望行为(expectations)是个大成就:
“Mockito真的不需要期望行为,这简化了单元测试。从个人角度来说,由于该原因,我更喜欢Mockito API而不是EasyMock API。”
ThoughtWorks的Ketan Padegaonkar也对Mockito的独特语法赞赏有加:
“它的语法看起来比JMock的好多了,会让人一见钟情;我现在已经迷上测试了。”
Mockito1.5版增加了“监视”非mock对象的能力,这是通过验证对其特定方法的调用实现的。例如:
List list = new LinkedList();
List spy = spy(list);
“spy”变量现在作为list对象的句柄。它可被看作一个mock对象。例如我们可以用stub对其size方法进行处理:
stub(spy.size()).toReturn(100); 我们还可以调用并验证普通的方法:
spy.add("one");
verify(spy).add("one");
另一个改进就是可读性更好的桩语法。例如:
stub(obj.someMethod()).toReturn(result);可写做:
doReturn(result).when(obj).someMethod(); 这与旧式写法长度一样,但可读性更好并且括号也少了。除了doReturn(),还有doThrow()doAnswer()及doNothing()期望行为。
Mockito的其他有用的特性包括:
上手Mockito就如同将一个JAR文件加到classpath中一样简单。请访问Google Code project以了解安装说明、文档及更多代码示例。




(作者/Matthew Bass  译/张龙  出处/Infoq)

 您可能对 [Java] 的这些文章也感兴趣:

Swing中异常处理
JXTA技术与应用发展慨述
什么是设计模式
从XML到Java代码的数据绑定之一
Adapter在J2SE事件处理中的应用
J2ME中使用缓存将屏幕内容存储为Image
Struts 的安装、配置与运行
jdk6.0+Tomcat6.0的简单jsp,Servlet,javabean的调试
SUN JavaFX将完全开源
面向方面编程慨述和JBossJBoss
1
查看完整版本: 使用Mockito 1.5监视普通对象
Modify by pin5i DZNT_ExpandPackage 2.1.3258 2007-2008 pin5i.com
  Total Unique Visitors: