Mockito: comment faire correspondre n'importe quel paramètre enum

j'ai cette méthode déclarée comme ceci

private Long doThings(MyEnum enum, Long otherParam); et ce enum

public enum MyEnum{
  VAL_A,
  VAL_B,
  VAL_C
}

Question: Comment puis-je me moquer?--3--> appels? Je ne peut pas correspondre tout MyEnum.

Le suivant ne fonctionne pas:

Mockito.when(object.doThings(Matchers.any(), Matchers.anyLong()))
        .thenReturn(123L);
26
demandé sur ROMANIA_engineer 2013-11-13 13:15:09

2 réponses

Matchers.any(Class) va faire l'affaire:

Mockito.when(object.doThings(Matchers.any(MyEnum.class), Matchers.anyLong()))
    .thenReturn(123L);

en tant que note secondaire: envisagez d'utiliser Mockito statique importations:

import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;

Moqueur obtient beaucoup plus court:

when(object.doThings(any(MyEnum.class), anyLong())).thenReturn(123L);
43
répondu rzymek 2013-11-13 09:23:34

mis à part la solution ci-dessus, essayez ceci...

when(object.doThings((MyEnum)anyObject(), anyLong()).thenReturn(123L);
0
répondu VinayVeluri 2013-11-13 09:38:10