博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用JMock实现对基于接口编程的类进行单元测试的简单步骤
阅读量:6085 次
发布时间:2019-06-20

本文共 760 字,大约阅读时间需要 2 分钟。

通常某个逻辑类handler会用到其它的业务逻辑类来实现某
些功能,如Dao/Jms/HttpRequet/HttpRe
sponse等,我们可以把单元测试类派生自junit.fra
mework.TestCase,添加testXXX方法对ha
ndler的单元测试,对其中用到的别的逻辑对象的接口inte
rface进行Mock。举例如下:

Mock interfaceMock = new Mock(Interface.class); 

//模拟方法 

interfaceMock.expects(new InvokeAtLeastOnceMatcher()). //方法调用类型:仅一次/至少一次/至多一次等

method("/*方法的名字:methodA*/"). 

with( /*方法的参数:比如new IsEqual(-1L)*/). 

will(new ReturnStub(/*方法的返回:比如false*/));


handler.setInterfaceM
ock((InterfaceMock) interfaceM
ock.proxy());

Object ret = handler.
addGroup(group); //假设addGroup用
到InterfaceMock的methodA

assertNotNull(ret);//Assert步骤,检查方法功能。


在我的测试过程中,发现无法用不同的参数序列带入生成不同的返回,当然这也是没必要的,带入不同的返回是可以重构Matcher的,需要注意的是不要用InvokeOnceMatcher类型,否则无法重构。

本文转自 dannyy1026 51CTO博客,原文链接:http://blog.51cto.com/dannyyuan/275127

转载地址:http://hduwa.baihongyu.com/

你可能感兴趣的文章
Flutter 插件开发:以微信SDK为例
查看>>
.NET[C#]中NullReferenceException(未将对象引用到实例)是什么问题?如何修复处理?...
查看>>
边缘控制平面Ambassador全解读
查看>>
Windows Phone 7 利用计时器DispatcherTimer创建时钟
查看>>
程序员最喜爱的12个Android应用开发框架二(转)
查看>>
vim学习与理解
查看>>
DIRECTSHOW在VS2005中PVOID64问题和配置问题
查看>>
MapReduce的模式,算法以及用例
查看>>
《Advanced Linux Programming》读书笔记(1)
查看>>
zabbix agent item
查看>>
一步一步学习SignalR进行实时通信_7_非代理
查看>>
AOL重组为两大业务部门 全球裁员500人
查看>>
字符设备与块设备的区别
查看>>
为什么我弃用GNOME转向KDE(2)
查看>>
Redis学习记录初篇
查看>>
爬虫案例若干-爬取CSDN博文,糗事百科段子以及淘宝的图片
查看>>
Web实时通信技术
查看>>
第三章 计算机及服务器硬件组成结合企业运维场景 总结
查看>>
IntelliJ IDEA解决Tomcal启动报错
查看>>
默认虚拟主机设置
查看>>