¿Realmente no te importa cuáles son los contenidos de la matriz de bytes? Veo esto mucho en las pruebas unitarias, donde las personas usan los comparadores anyX () porque son convenientes, pero de manera realista casi siempre debería importarle lo que se pasa. Si no está usando una respuesta que realmente consuma el valor, probablemente debe coincidir con un argumento esperado real.
Matunos
@Matunos: Eso es discutible. El uso de any-matchers puede hacer que las pruebas sean más simples y la siguiente persona que mira la prueba no se distraerá con una correspondencia innecesariamente precisa y puede centrarse en el propósito real de la prueba.
Malik Atalla
@tbruelle: Tenga en cuenta que cada matriz en Java es un objeto. Eso te ayudaría al principio.
Advertencia para todos: ahora está en desuso, así que iría por la respuesta votada Mockito.any (byte []. Class)
Chexpir
10
Estoy de acuerdo con Mutanos y Alecio. Además, uno puede verificar tantas llamadas a métodos idénticos como sea posible (verificando las llamadas posteriores en el código de producción, el orden de la verificación no importa). Aquí está el código:
Siempre puedes crear un Matcher personalizado usando 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;}}));
Respuestas:
lo intentaré
any(byte[].class)
fuente
AdditionalMatchers.aryEq(expectedArray)
Prueba esto:
fuente
Prefiero usar
Matchers.<byte[]>any()
. Esto funcionó para mí.fuente
Estoy de acuerdo con Mutanos y Alecio. Además, uno puede verificar tantas llamadas a métodos idénticos como sea posible (verificando las llamadas posteriores en el código de producción, el orden de la verificación no importa). Aquí está el código:
fuente
Solía
Matchers.refEq
para esto.fuente
Puede usar Mockito.any () cuando los argumentos son matrices también. Lo usé así:
fuente
Lo que funciona para mí fue
org.mockito.ArgumentMatchers.isA
por ejemplo:
Eso funciona bien.
La diferencia de implementación entre ellos es:
fuente
Siempre puedes crear un Matcher personalizado usando
argThat
fuente