このメソッドをこのように宣言しています
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);
上記の解決策とは別に、これを試してください...
when(object.doThings((MyEnum)anyObject(), anyLong()).thenReturn(123L);