Моя версия Mockito не самая новая -версия 1.10.19
У меня есть метод в классе DAO, который я хочу протестировать, например
public void updateMe(String commaSeparatedAttributes)
Он получает строкув качестве аргумента с разделенным запятыми списком как 2,5,3
Проблема в том, что порядок списка не гарантирован.
Я нашел это решение с HamcrestcontainsInAnyOrder
, но это не помогает мне, потому что аргумент является строкой, я пробовал несколько вариантов (включая отправку ArrayList) как:
verify(dao).updateMe(argThat(Matchers.containsInAnyOrder("2","5,"3")));
Это не компилируется с ошибкой:
Type mismatch: cannot convert from Iterable<capture#1-of ? extends String> to String
РЕДАКТИРОВАТЬ
Также следующее возвращение NullPointerException в тесте
verify(dao).updateMe(argThat(
new ArgumentMatcher<String>() {
@Override
public boolean matches(Object argument) {
List<String> inputs = Arrays.asList(((String)argument).split(","));
return inputs.containsAll(Arrays.asList("2", "5", "3"));
}
}
));