[JAVA] Wie man jeden Fall mit Mockito 1x verspottet

Überblick

Bei der Verwendung von Mockito wurde ich immer gegoogelt, wie man sich in diesem Fall verspottet, aber ich habe beschlossen, es zusammenzufassen, weil es ineffizient ist. Ich möchte wirklich JMockit verwenden, aber da schwarze Magie verboten ist, verwende ich Mockito.

Annahme

Wir konnten noch nicht auf das 2. System umsteigen, daher ist Mockito1x eine Voraussetzung. Mockito 1.10.19 JUnit 4.11 Java 1.8.0_151

Fall

Eine Sache, die Sie bei Mockito beachten sollten, ist, dass die Verspottungsmethode unterschiedlich ist, je nachdem, ob der Rückgabewert der Methode ungültig ist oder nicht. Auf dieser Grundlage haben wir es in die folgenden sechs Kategorien eingeteilt.

No Rückgabetyp der Scheinzielmethode Mock Range Scheinbetrieb
1 Anders als nichtig Das ganze Gibt den angegebenen Rückgabewert zurück
2 Anders als nichtig Das ganze Eine Ausnahme auslösen
3 void Das ganze Eine Ausnahme auslösen
4 Anders als nichtig Nur einige Methoden Gibt den angegebenen Rückgabewert zurück
5 Anders als nichtig Nur einige Methoden Eine Ausnahme auslösen
6 void Nur einige Methoden Eine Ausnahme auslösen

Übrigens liegt der Fall, in dem private Methode, statische Methode und abhängiges Objekt von new generiert werden, im Bereich von PowerMock, daher werde ich einen weiteren Artikel schreiben. → Ich habe es geschrieben. Wie man jeden Fall mit PowerMock + Mockito1x verspottet https://qiita.com/taka_22/items/27ea1fbf9c305ba83dcc

Wie schreibe ich einen Test?

No.1 /**

No.2 /**

No.3 Der Punkt ist, dass doThrow vorne kommt.

/**

No.4 Wenn Sie nur einen Teil davon verspotten möchten, verwenden Sie Spion anstelle von Verspotten. Es wird verwendet, wenn Sie das Verhalten einer Methode ändern möchten, die kein Testziel ist und von einer Testzielmethode aufgerufen wird.

/**

// Ich habe dem realen Objekt "bbb" hinzugefügt spiedList.add("bbb"); // Spy now get (0) gibt "aaa" zurück when(spiedList.get(0)).thenReturn("aaa");

// Das Ergebnis ist "aaa" assertThat((String)spiedList.get(0), is("aaa")); // Andere Methoden geben echte Ergebnisse zurück assertThat(spiedList.size(), is(1)); }

No.5 /**

// Ich habe dem realen Objekt "bbb" hinzugefügt spiedList.add("bbb"); // Spy now get (0) löst eine RuntimeException aus when(spiedList.get(0)).thenThrow(new RuntimeException("aaa"));

	try {
		spiedList.get(0);
		fail();
	} catch(Exception e) {
		assertThat(e.getMessage(), is("aaa"));
	}

// Andere Methoden geben echte Ergebnisse zurück assertThat(spiedList.size(), is(1)); }

No.6 /**

// Füge "bbb" zum realen Objekt hinzu spiedList.add("bbb"); // Eine RuntimeException auslösen, wenn clear aufgerufen wird doThrow(new RuntimeException("aaa")).when(spiedList).clear();

	try {
		spiedList.clear();
		fail();
	} catch(RuntimeException e) {
		assertThat(e.getMessage(), is("aaa"));
	}

// Andere Methoden geben echte Ergebnisse zurück assertThat(spiedList.size(), is(1)); assertThat((String)spiedList.get(0), is("bbb")); }

Referenz

Mockito http://site.mockito.org/

Projekt bestätigt zu arbeiten

https://github.com/taka2/mockito-sample

Wie man jeden Fall mit PowerMock + Mockito1x verspottet

https://qiita.com/taka_22/items/27ea1fbf9c305ba83dcc

Recommended Posts

Wie man jeden Fall mit Mockito 1x verspottet
Wie man jeden Fall mit PowerMock + Mockito1x verspottet
Wie schreibe ich Mockito
Wie man mit html.erb nummeriert (nummeriert)
So aktualisieren Sie mit activerecord-import
Wie fange ich mit schlank an?
Wie man ein Zeichen mit "~" einschließt
Wie man mssql-tools mit alpine benutzt
So starten Sie Camunda mit Docker
So realisieren Sie mit TERASOLUNA 5.x (= Spring MVC) das Hochladen großer Dateien
So beschneiden Sie ein Bild in libGDX
So passen Sie TextPosition mit der iOS-Tastaturerweiterung an
So teilen Sie Dateien mit Docker Toolbox
So kompilieren Sie Java mit VsCode & Ant
[Java] Fassen Sie zusammen, wie Sie mit der Methode equals vergleichen können
[Android] Wie man mit dunklen Themen umgeht
Verwendung von BootStrap mit Play Framework
So wechseln Sie Miniaturbilder mit JavaScript
[Hinweis] Erste Schritte mit Rspec
API-basierte Steuerung mit cancancan
So erreichen Sie den Dateidownload mit Feign
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 6.x)
So aktualisieren Sie verwandte Modelle mit accept_nested_attributes_for
So setzen Sie JAVA_HOME mit dem Appassembler-Maven-Plugin von Maven
So implementieren Sie TextInputLayout mit Validierungsfunktion
[Rails 5.x] So führen Sie kostenlose Schriftarten ein
So behandeln Sie Anmeldefehler mit devise
So löschen Sie Daten mit einem externen Schlüssel
So testen Sie den privaten Bereich mit JUnit
So überwachen Sie Nginx mit Docker-Compose mit Datadog
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 5.x)
Der Umgang mit dem Vorkompilieren von Assets ist fehlgeschlagen.
So erreichen Sie das Hochladen von Dateien mit Feign
So führen Sie Blazor (C #) mit Docker aus
So erstellen Sie eine Rails 6-Umgebung mit Docker
So laden Sie Oracle JDK 8 U / min mit Curl herunter
[Java] So testen Sie, ob es in JUnit null ist
Ausführen einer Methode und Verspotten mit JUnit
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
So speichern Sie mit einer Eingabe in mehreren Tabellen
So testen Sie Interrupts während Thread.sleep mit JUnit
Verwendung des eingebauten h2db mit Federstiefel
Verwendung des Java-Frameworks mit AWS Lambda! ??
So erstellen Sie mit ActiveHash mehrere Pulldown-Menüs
Hinweise zur Verwendung der einzelnen JUnit-Regeln
Verwendung der Java-API mit Lambda-Ausdrücken
Erste Schritte mit Eclipse Micro Profile
So geben Sie jemandem Ihr Image mit Docker
So fügen Sie mit MyBatis alles auf einmal ein
So schreiben Sie Testcode mit Basic-Zertifizierung
So erstellen Sie eine API mit GraphQL und Rails
Verwendung des NFS-Protokolls Version 2 mit Ubuntu 18.04