suchen
HeimJavajavaLernprogramm@Mock vs. @InjectMocks in Mockito: Was ist der Unterschied?

@Mock vs. @InjectMocks in Mockito: What's the Difference?

Den Unterschied zwischen @Mock und @InjectMocks in Mockito verstehen

Mockito, ein bekanntes Mocking-Framework in Java, bietet zwei Anmerkungen, @Mock und @InjectMocks, um Unit-Tests zu erleichtern. Während beide eine entscheidende Rolle im Testprozess spielen, verfügen sie über unterschiedliche Funktionalitäten.

@Mock: Das Mock-Erstellungstool

Die @Mock-Annotation wird zum Erstellen von Mocks verwendet Objekte. Ein Scheinobjekt ist ein leichter Ersatz für ein reales Objekt, das dessen Verhalten auf kontrollierte Weise simuliert. Wenn Sie eine Klasse oder Schnittstelle mit @Mock annotieren, generiert Mockito eine Scheinimplementierung, die während Unit-Tests manipuliert und überprüft werden kann.

@InjectMocks: The Dependency Injection Facilitator

Im Gegensatz zu @Mock dient @InjectMocks einem anderen Zweck. Es wird auf die zu testende Klasse angewendet, um Mocks oder Spione (Instanzen der realen Klasse, die teilweise gemobbt werden können) einzuschleusen, die mithilfe der @Mock-Annotation erstellt wurden. Dieser Injektionsprozess findet automatisch während der Testinitialisierung statt, was das Einrichten von Testkonfigurationen erleichtert.

Wie sie zusammenarbeiten

Um das Zusammenspiel zwischen @Mock und @ zu demonstrieren InjectMocks, betrachten Sie den folgenden Codeausschnitt:

@RunWith(MockitoJUnitRunner.class)
public class SomeManagerTest {

    @InjectMocks
    private SomeManager someManager;

    @Mock
    private SomeDependency someDependency; // injected into someManager

    // tests...

}

In diesem Beispiel wird die Annotation @InjectMocks auf die angewendet SomeManagerTest-Klasse, die angibt, dass es sich um die zu testende Klasse handelt. Die Annotation @Mock wird verwendet, um einen Mock für die SomeDependency-Klasse zu erstellen. Wenn der Test ausgeführt wird, wird die Mock-Abhängigkeit in die someManager-Instanz eingefügt.

Durch die Kombination von @Mock und @InjectMocks können wir den Mock-Setup-Prozess rationalisieren und das Testen komplexer Klasseninteraktionen vereinfachen. Es ist wichtig zu beachten, dass die MockitoJUnitRunner.class (oder MockitoExtension.class für JUnit 5) in der Testklasse enthalten oder manuell initialisiert werden muss, um die Mocks zu initialisieren und einzuschleusen.

Das obige ist der detaillierte Inhalt von@Mock vs. @InjectMocks in Mockito: Was ist der Unterschied?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)