MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

关于mock

Posted on 2010-02-14 21:20 leekiang 阅读(297) 评论(0)  编辑  收藏 所属分类: 测试

至于easymock之外的选择,我个人比较喜欢和推崇jmockit,mocito虽然也不错不过有了jmockit我就pass掉mockito了。
只是每次看到项目代码中,用easymock有record,replay却不调用verify时,就觉得郁闷。这样的testcase,就算通过了,又能说明什么?

Mock通常很少考虑复用,每个mock对象通过都是遵循"just enough"原则,一般只适用于当前测试方法。因此每个测试方法都必须实现自己的mock逻辑,当然在同一个测试类中还是可以有一些简单的初始化逻辑可以复用。
stub则通常比较方便复用,尤其是一些通用的stub,比如jdbc连接之类。spring框架就为此提供了大量的stub来方便测试,不过很遗憾的是,它的名字用错了:spring-mock
mock和stub的最重要的区别:expectiation/期望。 对于mock来说,expectiation是重中之重:我们期待方法有没有被调用,期待适当的参数,期待调用的次数,甚至期待多个mock之间的调用顺序。所有的一切期待都是事先准备好,在测试过程中和测试结束后验证是否和预期的一致。
而对于stub,通常都不会关注expectiation


easymock教程-mock和stub
http://www.javaeye.com/topic/21630
单元测试框架JMock与Mockito的用法比较
http://javasee.iteye.com/blog/1000868
http://hyjun.iteye.com/blog/337206
单元测试mock:用JMockit写单元测试实例
http://gojko.net/2009/10/23/mockito-in-six-easy-examples/

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


网站导航: