Mockitoverify
機能を使用してメソッドが何度も呼び出されたことを確認しようとしています。ただし、私が直面している問題は、メソッドがオーバーロードされているため、メソッドが呼び出されなかったと主張していることです。ミックスにレンチを追加するために、このメソッドに渡された引数が何であったかをキャプチャしたいと思います。これが私がこれまでに持っているものです:
@Test
public void simpleTest() throws IOException {
FlumeAppender mockAppender = Mockito.mock(FlumeAppender.class);
ArgumentCaptor<LoggingEvent> arguments = ArgumentCaptor.forClass(LoggingEvent.class);
// Load the message that should be sent to the class being tested
InputStream in = this.getClass().getResourceAsStream("/testMessage.xml");
StringWriter writer = new StringWriter();
IOUtils.copy(in, writer, "UTF-8");
String testMessage = writer.toString();
// Send a message to the class being tested. This class will
// (hopefully) call the function I am listening to below
eventSubscriber.handleMessage(testMessage);
// Verify that the append method was called twice
Mockito.verify(mockAppender, Mockito.times(2)).append(
arguments.capture());
// Do something with the arguments
}
私が言ったように、私が検証 (追加) しようとしている関数はオーバーロードされています。引数をキャプチャしながら検証を求めている追加関数を指定することは可能ですか?