回答:
あなたはそれをキャストする必要があると思いますが、それは悪くないはずです:
Foo<Bar> mockFoo = (Foo<Bar>) mock(Foo.class);
when(mockFoo.getValue()).thenReturn(new Bar());
これを回避するもう1つの方法は、@Mock代わりにアノテーションを使用することです。すべてのケースで機能するわけではありませんが、よりセクシーに見えます:)
次に例を示します。
@RunWith(MockitoJUnitRunner.class)
public class FooTests {
    @Mock
    public Foo<Bar> fooMock;
    @Test
    public void testFoo() {
        when(fooMock.getValue()).thenReturn(new Bar());
    }
}
はMockitoJUnitRunner、で注釈が付けられたフィールドを初期化します@Mock。
SuppressWarningsます。警告には理由があります。それらを抑制する習慣を身につけない方が良いでしょう。ありがとう!
                    @Mock代わりに使用したくない点が1つありmock()ます。フィールドは構築時にnullのままであるため、そのときに依存関係を挿入できず、フィールドをfinalにすることができません。前者@Beforeはもちろん、注釈付きの方法で解決できます。
                    指定したいジェネリック型を満たす中間クラス/インターフェースを常に作成できます。たとえば、Fooがインターフェイスの場合、テストクラスで次のインターフェイスを作成できます。
private interface FooBar extends Foo<Bar>
{
}
Fooが非最終クラスである状況では、次のコードを使用してクラスを拡張し、同じことを行うことができます。
public class FooBar extends Foo<Bar>
{
}
その後、次のコードで上記の例のいずれかを使用できます。
Foo<Bar> mockFoo = mock(FooBar.class);
when(mockFoo.getValue()).thenReturn(new Bar());
Fooはインターフェースまたは非最終クラスですが、これはかなりエレガントなソリューションのようです。ありがとう。
                    テストユーティリティメソッドを作成します。複数回必要な場合に特に便利です。
@Test
public void testMyTest() {
    // ...
    Foo<Bar> mockFooBar = mockFoo();
    when(mockFooBar.getValue).thenReturn(new Bar());
    Foo<Baz> mockFooBaz = mockFoo();
    when(mockFooBaz.getValue).thenReturn(new Baz());
    Foo<Qux> mockFooQux = mockFoo();
    when(mockFooQux.getValue).thenReturn(new Qux());
    // ...
}
@SuppressWarnings("unchecked") // still needed :( but just once :)
private <T> Foo<T> mockFoo() {
    return mock(Foo.class);
}
static <T> T genericMock(Class<? super T> classToMock) { return (T)mock(classToMock); }それは単一の抑制を必要としません:)しかし、注意してください、Integer num = genericMock(Number.class)コンパイルしますがスローしClassCastExceptionます。これは、最も一般的なG<P> mock = mock(G.class)ケースでのみ役立ちます。
                    これは興味深いケースです。メソッドはジェネリックコレクションを受け取り、同じ基本型のジェネリックコレクションを返します。例えば:
Collection<? extends Assertion> map(Collection<? extends Assertion> assertions);このメソッドは、Mockito anyCollectionOfマッチャーとAnswerの組み合わせでモックできます。
when(mockedObject.map(anyCollectionOf(Assertion.class))).thenAnswer(
     new Answer<Collection<Assertion>>() {
         @Override
         public Collection<Assertion> answer(InvocationOnMock invocation) throws Throwable {
             return new ArrayList<Assertion>();
         }
     });