如何捕获接口方法的调用并使用JMockit将被捕获的接口方法的逻辑替换为模拟的?
答案 0 :(得分:2)
是的,“JMockit教程”清楚地描述了这里:http://jmockit.googlecode.com/svn/trunk/www/tutorial/StateBasedTesting.html#interfaces
以下是复制粘贴的代码示例,该代码模仿CallBackHandler
接口并提供handle
方法的自己实现:
@Test
public void mockingAnInterface() throws Exception
{
CallbackHandler callbackHandler = new MockUp<CallbackHandler>() {
@Mock
void handle(Callback[] callbacks)
{
assertEquals(1, callbacks.length);
assertTrue(callbacks[0] instanceof NameCallback);
}
}.getMockInstance();
callbackHandler.handle(new Callback[] {new NameCallback("Enter name:")});
}