EasyMock モックが再生モードにあるかどうかを判断することは可能ですか?
何かのようなもの:
if (EasyMock.isReplayed(mock))
// do something
モックの を確認するには、モックのプロキシを解除し、そのモックに設定されている状態を確認するstate
必要があります。1 つの状態は. EasyMock は Java プロキシで動作するため、これは非常に簡単です。ReplayState
EasyMock.replay(mock); // setting replay state to a mock object
// stripping proxy and getting the invocation handler
InvocationHandler invocationHandler = Proxy.getInvocationHandler(mock);
// for easyMock, invocation handler holds the state of the mock
ObjectMethodsFilter objectMethodsFilter = (ObjectMethodsFilter) invocationHandler;
// not the not so elegant part:
// this: objectMethodsFilter.getDelegate().getControl().getState()
// retrieves the state instance that can be checked if it is an
// instance of ReplayState.class
boolean inReplayState = objectMethodsFilter.getDelegate()
.getControl().getState() instanceof ReplayState;
以上です!true
すでにに設定されているため、これは印刷されますReplay
バージョン 3.1 の場合は、次のように使用できます。
ClassExtensionHelper.getControl(mock).getState() instanceof ReplayState