Подтвердить что ты не робот

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);
4b9b3361

Ответ 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);