Posted on 2010-02-14 21:20
leekiang 阅读(298)
评论(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和stubhttp://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/