easymock, макет, возвращающий макет

Я тестирую свой код Java с помощью EasyMock.

Кусок кода, который я хочу смоделировать, выглядит следующим образом:

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, ...)

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, mupClient вернусь enqueueRequestCall только после звонка replay method from easymock.

Другие вопросы по тегам