web-dev-qa-db-fra.com

Mockito: comment faire correspondre n'importe quel paramètre d'énumération

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);
33
George D

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);
52
rzymek

En dehors de la solution ci-dessus, essayez ceci ...

when(object.doThings((MyEnum)anyObject(), anyLong()).thenReturn(123L);
0
VinayVeluri