私はMockitoモックフレームワークを使ってジェネリッククラスをJavaでモックしています。フレームワークの使い方はドキュメントからははっきりしているようですが、私はジェネリッククラスを嘲笑する例は見つけませんでした。モックフレームワークは、以下の方法が含まれます。ジェネリッククラスのジェネリックメソッド
public static <T> T mock(Class<T> classToMock) {
...
}
を私はジェネリック型IState<StateId, Event>
を持っていると私は、上記の方法を使用して、それをインスタンス化します。
IState<StateId, Event> mockState = Mockito.mock(IState.class);
私はこのコードについて、次の警告を得る:
Type safety: The expression of type IState needs unchecked conversion to conform to IState<StateId,Event>
私は問題が何であるかを知っていると思うが、私は、次の試してみました。 mock
メソッドはIState
の型を返しますが、代入する変数は特殊型IState<StateId, Event>
なので、私は何とか作成しているクラスが具体的にはIState<StateId, Event>
であることを伝える必要がありますが、これは。私は以下のものを試しましたが、それらはすべて構文エラーを出しました。
IState<StateId, Event> mockState = Mockito.mock(IState<StateId, Event>.class);
IState<StateId, Event> mockState = Mockito.mock(IState.class<StateId, Event>);
これはテストです(私はmockitoだと思います)。警告を無視することができます。 '.class'に対して' IState。 class'はありません。 –
@RC:それはできますが、これらのことがJavaでどのように処理されるかはまだ不思議です。 – petersohn