よく忘れて定期的にググっているのでメモ。
verify
で任意のマッチ処理を書きたい
verify
でパラメータの検証を行いたいが、単にequalsメソッドを使うだけでは
だめな場合(deep equalが必要とか)などを想定。
argThat
メソッドと、 ArgumentMatcher
クラスを使う。
Mockito.verify(eventLogPublisher, Mockito.times(2))
.publish(argThat(new ArgumentMatcher<EventLog>() {
@Override
public boolean matches(Object argument) {
return ((EventLog) argument).getEventLogType().equals(expectedLog.getEventLogType());
}
}));