Ho una classe Dummy
. Inietto 3 variabili. Tuttavia, uno di questi non è iniettabile perché è un'interfaccia. Quindi inietto un oggetto, uno dei cui metodi restituisce il tipo necessario.Perché il metodo stub restituisce null?
Class Dummy
{
private final Class1 class1;
private final Class2 class2
private final Interface1 interface1;
@Inject
Dummy(Class1 class1, Class2 class2, HelperClass helperclass)
{
this.class1 = class1;
this.class2 = class2;
this.interface1 = helperclass.somefunction();
}
}
s' The HelperClass
somefunction
restituisce un'istanza di Interface1
.
Questa è la mia prova:
@RunWith(MockitoJUnitRunner.class)
Class DummyTest
{
@Mock
private Class1 class1;
@Mock
private Class2 class2;
@Mock
private HelperClass helperclass;
@InjectMocks
private Dummy dummy;
@Before
public void start()
{
Interface1 mockInterface = mock(Interface1.class);
when(helperclass.somefunction()).thenReturn(mockInterface);
}
@Test
public void test()
{
// etc...
}
}
Tuttavia, interface1
è nullo quando si esegue il test. Che cosa sto facendo di sbagliato?
Presumo che l'interfaccia1 è un clase che implementa de interfacce, giusto? – Koitoer
@Koitoer Nessuna interfaccia1 è un'interfaccia '. Non implementazione. È analogo a 'List' not' ArrayList' – user7