可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I have this method declared like this
private Long doThings(MyEnum enum, Long otherParam); and this enum
public enum MyEnum{ VAL_A, VAL_B, VAL_C }
Question: How do I mock doThings() calls? I cannot match any MyEnum.
The following doesn't work:
Mockito.when(object.doThings(Matchers.any(), Matchers.anyLong())) .thenReturn(123L);
回答1:
Matchers.any(Class) will do the trick:
Mockito.when(object.doThings(Matchers.any(MyEnum.class), Matchers.anyLong())) .thenReturn(123L);
As a side note: consider using Mockito static imports:
import static org.mockito.Matchers.*; import static org.mockito.Mockito.*;
Mocking gets a lot shorter:
when(object.doThings(any(MyEnum.class), anyLong())).thenReturn(123L);
回答2:
Apart from the above solution try this...
when(object.doThings((MyEnum)anyObject(), anyLong()).thenReturn(123L);