Heim > Java > javaLernprogramm > @Mock vs. @InjectMocks in Mockito: Wann welche verwenden?

@Mock vs. @InjectMocks in Mockito: Wann welche verwenden?

Mary-Kate Olsen
Freigeben: 2024-11-24 06:49:16
Original
489 Leute haben es durchsucht

@Mock vs. @InjectMocks in Mockito: When to Use Which?

Wann sollte man @Mock vs. @InjectMocks in Mockito verwenden?

Mockito ist ein beliebtes Framework für Mocking und Unit-Tests in Java. Es bietet zwei Anmerkungen zum Verspotten: @Mock und @InjectMocks. Es ist wichtig, ihre Unterschiede zu verstehen, um Mocks effektiv in Ihren Tests nutzen zu können.

@Mock

@Mock wird verwendet, um ein Mock-Objekt zu generieren. Wenn Sie ein Feld mit @Mock annotieren, erstellt Mockito ein Objekt der angegebenen Klasse und registriert es als Mock. Dieser Mock hält sich an das Verhalten der Mock-Schnittstelle und stellt einen Ersatz für reale Objekte in Ihren Tests dar.

@InjectMocks

Im Gegensatz dazu kommentiert @InjectMocks eine Instanz von a Klasse im Test. Mockito fügt Scheinobjekte, die mit @Mock-Annotationen erstellt wurden, in diese Instanz ein. Mit dieser Technik können Sie das Verhalten der zu testenden Klasse testen, während Sie mit bestimmten Mock-Abhängigkeiten interagieren.

Überlegungen zur Verwendung

Um @Mock und @InjectMocks zu verwenden, müssen Sie Ich muss die Mocks initialisieren und injizieren. Verwenden Sie in JUnit 4 @RunWith(MockitoJUnitRunner.class) oder Mockito.initMocks(this). Verwenden Sie für JUnit 5 @ExtendWith(MockitoExtension.class).

Beispiel

Betrachten Sie das folgende Beispiel, das die Verwendung von @Mock und @InjectMocks veranschaulicht:

// JUnit 4
@RunWith(MockitoJUnitRunner.class)
public class SomeManagerTest {

    @InjectMocks
    private SomeManager someManager;

    @Mock
    private SomeDependency someDependency; // injected into someManager
    
    // tests...
}
Nach dem Login kopieren

In diesem Beispiel wird someManager mit der Scheininstanz someDependency injiziert. Tests können jetzt bestätigen, wie someManager mit diesem Mock interagiert.

Fazit

Die ordnungsgemäße Verwendung von @Mock und @InjectMocks ist für effektive Mockito-basierte Unit-Tests unerlässlich. Indem Sie ihre Rollen klar verstehen, können Sie die Genauigkeit und Zuverlässigkeit Ihrer Tests sicherstellen.

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

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage