2

例如,我有以下代码:

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

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

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

4

2 回答 2

4

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

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

于 2011-08-18T08:46:18.737 回答
0

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

于 2011-08-18T08:34:08.220 回答