cerulean

试验JMock

“jMock利用mock objects思想来对Java code进行测试。jMock具有以下特点:容易扩展,让你快速简单地定义mock objects,因此不必打破程序间的关联,你定义灵活的超越对象之间交互作用而带来测试局限,减少你测试地脆弱性。”

    跟JMock功能类似的还有EasyMock。
    简单试验后的感觉没有试验DBUnit后的感觉强烈,试了DBUnit的感觉是这东西以后一定要用.
    但个人认为mock object这种东西能不用就不用,模拟来模拟去,最后还是要和真东西联调,所以mock的阶段应该是尽可能的短才是.

使用模仿对象进行测试的常用编码样式是:
· 创建模仿对象的实例
· 设置模仿对象中的状态和期望值
· 将模仿对象作为参数来调用域代码
· 验证模仿对象中的一致性

代码中的大概过程:
     Mock mock = new Mock(**.class);//构造一个那个类的mock对象,把这个类传入Mock
     使用mock.expects方法,来设置想要执行的操作:执行几次、执行哪个方法、传什么参、返回什么值
     获得那个mock对象:** x = (**)mock.proxy();//proxy方法返回代理类实例,即虚拟对象实例
     然后run **.class的那个方法(call methods on the mock object, expectation on it will deliver the result set up by yourself)

     写mock-object 测试,需要有独立的接口作为mock的对象(从而促进了针对接口编程的习惯),还有个好的副作用:他迫使你来重写一些代码。实际上,代码常常写的不好。你让类和环境之间产生了不必要的耦合。

posted on 2007-03-20 21:05 cerulean 阅读(444) 评论(0)  编辑  收藏 所属分类: JavaTesting Related


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2007年3月>
25262728123
45678910
11121314151617
18192021222324
25262728293031
1234567

统计

常用链接

留言簿(3)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜