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

时间:2013-11-13 09:15:09

标签: java enums 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);

2 个答案:

答案 0 :(得分:48)

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

答案 1 :(得分:0)

除上述解决方案外,试试这个......

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