Вам действительно все равно, каково содержимое байтового массива? Я часто вижу это в модульном тестировании, где люди используют любые средства сопоставления anyX (), потому что они удобны, но реально вам почти всегда нужно заботиться о том, что передается. Если вы не используете ответ, который фактически потребляет значение, вы, вероятно, должен соответствовать фактическому ожидаемому аргументу.
Матунос
@Matunos: Это спорно. Использование any-matchers может упростить тесты, и следующий человек, смотрящий на тест, не будет отвлекаться на излишне точное соответствие и может сосредоточиться на реальной цели теста.
Малик Аталла
@tbruelle: Пожалуйста, имейте в виду, что каждый массив в Java является объектом. Это поможет вам в начале.
Предупреждение для всех: теперь устарела, поэтому я бы пошел за проголосовавший ответ Mockito.any (byte []. Class)
Chexpir
10
Я согласен с Мутаносом и Алесио. Кроме того, можно проверить как можно больше одинаковых вызовов методов (при проверке последующих вызовов в производственном коде порядок проверки не имеет значения). Вот код:
Вы всегда можете создать собственный Matcher, используя argThat
Mockito.verify(yourMockHere).methodCallToBeVerifiedOnYourMockHere(ArgumentMatchers.argThat(newArgumentMatcher<Object>(){@Overridepublicboolean matches(Object argument){YourTypeHere[] yourArray =(YourTypeHere[]) argument;// Do whatever you like, here is an example:if(!yourArray[0].getStringValue().equals("first_arr_val")){returnfalse;}returntrue;}}));
Ответы:
я бы попробовал
any(byte[].class)
источник
AdditionalMatchers.aryEq(expectedArray)
Попробуй это:
источник
Я бы предпочел использовать
Matchers.<byte[]>any()
. Это сработало для меня.источник
Я согласен с Мутаносом и Алесио. Кроме того, можно проверить как можно больше одинаковых вызовов методов (при проверке последующих вызовов в производственном коде порядок проверки не имеет значения). Вот код:
источник
Я использовал
Matchers.refEq
для этого.источник
Вы можете использовать Mockito.any (), когда аргументы также являются массивами. Я использовал это так:
источник
Что работает для меня было
org.mockito.ArgumentMatchers.isA
например:
это отлично работает
Разница в реализации друг друга:
источник
Вы всегда можете создать собственный Matcher, используя
argThat
источник