2012-06-06 2 views
1

를 반환.EasyMock에, 모의 내가 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입니다. 내가 .andReturn(new RequestInfo()).andThrow() 부분을 변경하더라도, 그것은 여전히 ​​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")); 

문제는 enqueRequestCallrequestInfo을 반환해야한다는 것입니다. mupClientreplay 메서드를 easymock에서 호출 한 후에 만 ​​enqueueRequestCall을 반환합니다.

+0

나는 그것을 시도했다. 나는 그 문제를 알아 냈다. 나는 다시 모의를하지 않았다. 효과가있었습니다. 예를 들어, 나는'replay (mock1)'을 가지고 있었고'replay (mock1, mock2)'이어야했다. 고맙습니다! – aakash