Foo<T>
ジェネリック パラメータを使用してクラスをモックするクリーンな方法はありますか?を期待するメソッドに渡す必要があるクラスをモックする必要があるとしますFoo<Bar>
。次のように簡単に実行できます。
Foo mockFoo = mock(Foo.class);
when(mockFoo.getValue).thenReturn(new Bar());
getValue()
はジェネリック型 を返すと仮定しますT
。しかし、後で を期待するメソッドに渡すと、問題が生じますFoo<Bar>
。キャストがこれを行う唯一の方法ですか?
ベストアンサー1
キャストする必要があると思いますが、それほど悪くはないはずです。
Foo<Bar> mockFoo = (Foo<Bar>) mock(Foo.class);
when(mockFoo.getValue()).thenReturn(new Bar());