以下に示すように、mock.fireEvent() が特定のイベント (ここでは event2) で呼び出されることを確認したい
mock.fireEvent(event1);
mock.fireEvent(event2);
verify(mock).fireEvent(matcherToCheckTheFieldOfEvent2);
しかし、それを示すエラーが発生します
verify(mock).fireEvent(matcherToCheckTheFieldOfEvent2);
最初の呼び出しに一致しようとします
mock.fireEvent(argThat(event1));
問題は、event2 を一致させる方法です。
マッチャーは次のようになります。
private class IsEvent2 extends ArgumentMatcher<Event2>
{
@Override
public boolean matches(Object arg)
{
return ((Event2) arg).methodGotCalled();
}
}