J'ai cette méthode déclarée comme ça
private Long doThings(MyEnum enum, Long otherParam);
et cette énumération
public enum MyEnum{
VAL_A,
VAL_B,
VAL_C
}
Question: Comment se moquer des appels de doThings()
? Je ne peux faire correspondre aucun MyEnum
.
Ce qui suit ne fonctionne pas:
Mockito.when(object.doThings(Matchers.any(), Matchers.anyLong()))
.thenReturn(123L);
Matchers.any(Class)
fera l'affaire:
Mockito.when(object.doThings(Matchers.any(MyEnum.class), Matchers.anyLong()))
.thenReturn(123L);
En remarque: pensez à utiliser Mockito
les importations statiques:
import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;
La moquerie devient beaucoup plus courte:
when(object.doThings(any(MyEnum.class), anyLong())).thenReturn(123L);
En dehors de la solution ci-dessus, essayez ceci ...
when(object.doThings((MyEnum)anyObject(), anyLong()).thenReturn(123L);