у вас, вероятно, есть проблема в вашем коде. Потому что на самом деле вы пишете этот код:
Map<Character, String> map = mock(Map.class);
map.put('a', "a");
map.put('b', "b");
map.put('c', "c");
verify(map).put(eq('c'), anyString());
verify(map).put(eq('a'), anyString());
verify(map).put(eq('b'), anyString());
Обратите внимание, что первая проверка не соответствует порядку действительных вызовов.
Кроме того, я бы порекомендовал вам не издеваться над типами, которыми вы не владеете, например типом стояков.
[EDIT @Brad]
После выполнения кода Бриса (выше) в моей IDE я вижу, что я использовал ActionError вместо ActionMessage, поэтому мой verify () не соответствовал. Сообщение об ошибке, которое я первоначально отправил, вводило меня в заблуждение, заставляя меня думать, что это был первый не соответствующий аргумент. Оказывается, это был второй аргумент.
Итак, ответ на мой вопрос
/**
* note that ActionMessageFactory.createErrorMessage() returns ActionMessage
* and ActionError extends ActionMessage
*/
verify(errors).add(eq("exception.message"), any(ActionMessage.class));
verify(errors).add(eq("exception.detail"), any(ActionMessage.class));