2017-05-02 5 views
0

@Mock Objektinstanz ist null.@Mock Objektinstanz ist Null

ich dies tue mein Testklasse ist

@Mock 
private SchoolRequest schoolRequest; 

@InjectMock 
private FormRequest formRequest; 

@Before 
public void init(){ 
    MockitoAnnotations.initMocks(this); 
} 

Class FormRequest { 

@Autowired 
private SchoolRequest schoolRequest; 


} 

Diese Anwendung ordnungsgemäß ausgeführt wird, aber in Testfällen schoolRequest kommt als null. Irgendein Hinweis darauf, warum es passieren könnte?

+0

Können Sie einen Beispielcode angeben, der Ihr Problem reproduziert? –

+0

es ist sehr große Code-Basis. kann den ganzen Code nicht setzen. –

+0

ist SchoolRequest endgültig? –

Antwort

0

ich den Grund nicht wissen, aber das funktionierte.

private SchoolRequest schoolRequest = Mockito.mock(SchoolRequest.class); 

Vielleicht kann jemand kommentieren, warum das funktioniert hat. Was ist der Unterschied zwischen @Mock und Mockito.mock? Ich dachte, sie sind gleich.

1

Ich denke, dass Sie @RunWith Annotation auf Klassenebene fehlt. Wann immer Sie die @Mock Annotation verwenden möchten, sollten Sie den MockitoJUnitRunner verwenden.

@RunWith(MockitoJUnitRunner.class) 
public class MockitoTest { 
@Mock 
private SchoolRequest schoolRequest; 

@InjectMock 
private FormRequest formRequest; 

@Before 
public void init(){ 
    MockitoAnnotations.initMocks(this); 
} 
} 

Ich hoffe, dies sollte für Sie arbeiten ..

+0

Es ist eine der Optionen. http://stackoverflow.com/questions/29590621/mock-instance-is-null-after-mock-annotation –

+0

Ich habe dies auch versucht, aber das gleiche Ergebnis. –

Verwandte Themen