2013-11-13 3 views
24

Я этот метод объявлен как этотMockito: Как соответствовать любому параметру перечислимую

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

ответ

37

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); 
+1

Спасибо, это работает! –

+0

Добавление статического импорта намного лучше :) – VinayVeluri

0

Помимо вышеуказанного раствора попробовать это ...

when(object.doThings((MyEnum)anyObject(), anyLong()).thenReturn(123L); 
Смежные вопросы