web-dev-qa-db-ja.com

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);
_
33
George D

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

上記の解決策とは別に、これを試してください...

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