725 Stimmen

Unterschied zwischen @Mock und @InjectMocks

Was ist der Unterschied zwischen @Mock und @InjectMocks im Mockito-Framework?

10voto

Frank Jose Punkte 346

Bildbeschreibung hier eingeben

@Mock dient dazu, Mock-Instanzen zu erstellen und einzufügen, ohne Mockito.mock manuell aufrufen zu müssen. In diesem Beispiel wäre die Instanz ClassB.

Währenddessen ist @InjectMocks für das automatische Einfügen von Mock-Feldern in das getestete Objekt gedacht. In diesem Fall wäre es ClassA

7voto

avp Punkte 2312

Viele Leute haben hier eine großartige Erklärung über @Mock vs @InjectMocks gegeben. Ich mag es, aber ich denke, unsere Tests und Anwendung sollten so geschrieben werden, dass wir @InjectMocks nicht verwenden müssen.

Referenz für weitere Lektüre mit Beispielen: https://tedvinke.wordpress.com/2014/02/13/mockito-why-you-should-not-use-injectmocks-annotation-to-autowire-fields/

3voto

user7294900 Punkte 52028

Beachten Sie, dass @InjectMocks bald veraltet sein werden

Veraltet @InjectMocks und planen die Entfernung in Mockito 3/4

und Sie können die Antwort und den Link von @avp hier folgen:

Warum Sie die InjectMocks Annotation nicht verwenden sollten, um Felder zu verdrahten

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X