Mockito: как сопоставить любой параметр enum
У меня этот метод объявлен следующим образом
private Long doThings(MyEnum enum, Long otherParam);
и это перечисление
public enum MyEnum{
VAL_A,
VAL_B,
VAL_C
}
Вопрос: Как мне высмеивать звонки doThings()
?
Я не могу сопоставить любой MyEnum
.
Не работает следующее:
Mockito.when(object.doThings(Matchers.any(), Matchers.anyLong()))
.thenReturn(123L);
Ответы
Ответ 1
Matchers.any(Class)
выполнит трюк:
Mockito.when(object.doThings(Matchers.any(MyEnum.class), Matchers.anyLong()))
.thenReturn(123L);
В качестве побочного примечания: рассмотрите использование статического импорта Mockito
:
import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;
Mocking становится намного короче:
when(object.doThings(any(MyEnum.class), anyLong())).thenReturn(123L);
Ответ 2
Помимо вышеуказанного решения, попробуйте это...
when(object.doThings((MyEnum)anyObject(), anyLong()).thenReturn(123L);