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

问题答案:

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.*;

模拟变得更短:

when(object.doThings(any(MyEnum.class), anyLong())).thenReturn(123L);