example - mockito mock java
Mockito: cómo hacer coincidir cualquier parámetro enum (2)
Tengo este método declarado así
private Long doThings(MyEnum enum, Long otherParam);
y esta enumeración
public enum MyEnum{
VAL_A,
VAL_B,
VAL_C
}
Pregunta: ¿Cómo me burlo de las llamadas doThings()
? No puedo igualar ningún MyEnum
.
Lo siguiente no funciona:
Mockito.when(object.doThings(Matchers.any(), Matchers.anyLong()))
.thenReturn(123L);
Aparte de la solución anterior prueba esto ...
when(object.doThings((MyEnum)anyObject(), anyLong()).thenReturn(123L);
Matchers.any(Class)
hará el truco:
Mockito.when(object.doThings(Matchers.any(MyEnum.class), Matchers.anyLong()))
.thenReturn(123L);
Como nota al margen: considera usar importaciones estáticas de Mockito
:
import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;
La burla se vuelve mucho más corta:
when(object.doThings(any(MyEnum.class), anyLong())).thenReturn(123L);