jmock和mockito如何创建包装器?

时间:2011-08-18 08:28:39

标签: java aop mockito jmock

例如,我有以下代码:

SomeClass stub = Mockito.mock(SomeClass.class);

之后,stub是SomeClass的正常实现,但有自己的行为(默认只是抛出一些异常,但没关系)

我如何为我的图书馆做同样的事情?我希望能够用一些wrap()方法包装一些类,甚至更好的实例,以混合我的行为。

2 个答案:

答案 0 :(得分:4)

jmock和Mockito(使用jmock代码)都在内部使用cglib来创建它们的存根/代理。请参阅ClassImposterizer

对于简单的情况,您可以使用Java的Proxy机制来创建您想要存根或模拟的接口的动态代理(实际上只是调用处理程序)。

答案 1 :(得分:0)

这是proxy设计模式。代理实现了模拟的接口/扩展模拟类,因此可以将其转换为模拟类型。如果需要,它还可以将责任委托给“实际实施”。通常,这种代理存根是通过一点点反射创建的。