Вы всегда можете создать промежуточный класс / интерфейс, который будет удовлетворять универсальному типу, который вы хотите указать. Например, если 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());