Я получил этот фрагмент кода в своем тестовом классе:
then(collector()).should().emit(eq(myStream), eq(myTuple),
argThat(allOf(hasItem(anyString()), hasItem("test1"), hasItem("test2"))));
Проблема в том, что я не знаю значение первого Item
. Я только знаю, что значение имеет тип String
.
Если я выполняю тест, я получаю сообщение:
Недопустимое использование сопоставителей аргументов! Ожидается 3 совпадения, записано 5
Более того:
Это исключение может возникнуть, если сопоставители объединены с необработанными значениями: // неправильно: someMethod(anyObject(), "raw String"); При использовании сопоставителей все аргументы должны предоставляться сопоставителями. Например: // правильно: someMethod(anyObject(), eq("Строка по сопоставителю"));
Я не вижу проблемы прямо знаю.
Спасибо за любую помощь.
anyString
исходит от Mockito, а не от Hamcrest... - person Boris the Spider   schedule 19.08.2016emit
должен иметь сопоставитель Mockito для каждого параметра, аallOf
должен содержать только сопоставители Hamcrest, но еслиanyString
является четвертым сопоставителем, я не вижу, где появляется пятый записанный сопоставитель. - person Jeff Bowman   schedule 19.08.2016