0
我想在客戶端提交消息時在CustomMessageConverter類的readInternal()中捕獲參數inputMessage。這裏的客戶端對象不是模擬對象。使用mockito捕獲器捕獲發送給方法的參數
@Component
public class CustomMessageConverter extends AbstractHttpMessageConverter<Object> {
...
@Override
protected Object readInternal(final Class<? extends Object> clazz, final HttpInputMessage inputMessage) throws IOException,
HttpMessageNotReadableException {
...do something here...
}
...
}
在AbstractHttpMessageConverter類:
@Override
public final T read(Class<? extends T> clazz, HttpInputMessage inputMessage) throws IOException {
return readInternal(clazz, inputMessage);
}
所以,我寫了一個類的Mockito捕捉到它。
但是,它仍然要去正規的轉換器類。你能建議我做錯了什麼嗎?
@Mock
CustomMessageConverter mockMessageConverter;
@Captor
private ArgumentCaptor<HttpInputMessage> inputMessage;
@Test
public void test() {
when(mockMessageConverter.read(CustomMessage.class, inputMessage.capture())).thenReturn(null);
client.submitMessage(Message);
verify(mockMessageConverter, times(1));
Object actual = customConverter.read(CustomMessage.class, inputMessage.getValue());
}