Tengo métodos como estos:
public <T> method(String s, Class<T> t) {...}
Que necesito verificar que nullse pasa al segundo argumento cuando utilizo comparadores para los otros parámetros, he estado haciendo esto:
@SuppressWarnings("unchecked")
verify(client).method(eq("String"), any(Class.class));
Pero, ¿hay una forma mejor (sin suprimir las advertencias)? Trepresenta el tipo de retorno de algún otro método, que a veces voidy en estos casos nullse pasa.
java
unit-testing
mocking
mockito
blanco
fuente
fuente

null(en lugar deany(Class.class))?Respuestas:
Actualización de la respuesta de David Wallace:
A partir de 2016-12, Java 8 y Mockito 2.3,
public static <T> T isNull(Class<T> clazz)está obsoleto y se eliminará en Mockito 3.0
utilizar
public static <T> T isNull()en lugar
fuente
(Integer) isNull()lugar deisNull( Integer.class ).org.mockito.Mockito.<String>isNull()Mockito tiene un
isNullcomparador , donde puedes pasar el nombre de la clase. Entonces, si necesita usarlo con otros comparadores, lo correcto es hacerverify(client).method(eq("String"),isNull(Class<?>.class));Esto ahora está en desuso, consulte la respuesta a continuación para el nuevo método: https://stackoverflow.com/a/41250852/1348
fuente
(String) isNull().isNull(String.class)y(String) isNull()son equivalentes. Elija lo que tenga más sentido para usted.Esto funciona para mi:
verify(client).method(eq("String"), eq((Class<?>) null));fuente