Mockito:如何匹配任何枚举参数

Geo*_*e D 37 java enums mockito

我有这样的方法声明

private Long doThings(MyEnum enum, Long otherParam); 这个枚举

public enum MyEnum{
  VAL_A,
  VAL_B,
  VAL_C
}
Run Code Online (Sandbox Code Playgroud)

问题:如何模拟doThings()通话?我无法匹敌MyEnum.

以下不起作用:

Mockito.when(object.doThings(Matchers.any(), Matchers.anyLong()))
        .thenReturn(123L);
Run Code Online (Sandbox Code Playgroud)

rzy*_*mek 56

Matchers.any(Class) 会做的伎俩:

Mockito.when(object.doThings(Matchers.any(MyEnum.class), Matchers.anyLong()))
    .thenReturn(123L);
Run Code Online (Sandbox Code Playgroud)

作为旁注:考虑使用Mockito静态导入:

import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;
Run Code Online (Sandbox Code Playgroud)

模拟变得更短:

when(object.doThings(any(MyEnum.class), anyLong())).thenReturn(123L);
Run Code Online (Sandbox Code Playgroud)