2

EasyMock を使用して Java コードをテストしています。

モックしたいコードは次のようになります。

requestInfo = mupClient.newEnqueueRequestCall().call(requestArgs);

私がこれを嘲笑している方法は次のとおりです。

expect(mupClient.newEnqueueRequestCall()).andReturn(enqueueRequestCall);
final Capture<EnqueueRequestArgs> captureRequestArgs = 
                         new Capture<EnqueueRequestArgs>();
expect(mupClient.newEnqueueRequestCall().call(capture(captureRequestArgs))).
                         andThrow(new MUPCoralException("an exception"));

しかしrequestInfo、常にnullです。.andThrow()パーツをに変えても の.andReturn(new RequestInfo())ままnullです。

他の同様の投稿を確認しましたが、うまくいきませんでした。これでコメントできたので、新しい質問を作成しました。

回答: すべてのモック化されたオブジェクトをreplay!に追加します。例replay(mockObj1, mockObj2, ...)

4

1 に答える 1

1

これを試して:

expect(mupClient.newEnqueueRequestCall()).andReturn(enqueueRequestCall);
final Capture<EnqueueRequestArgs> captureRequestArgs = 
                          new Capture<EnqueueRequestArgs>();
expect(enqueueRequestCall.call(capture(captureRequestArgs))).
                          andThrow(new MUPCoralException("an exception"));

問題は、あなたenqueRequestCallが返す必要があるということrequestInfoです。easymock からメソッドを呼び出した後にのみmupClient返されます。enqueueRequestCallreplay

于 2012-06-06T23:08:02.573 に答える