[JAVA] Machen Sie einen Unit-Test mit Junit.

Umgebung

・ Windows10 ・ Jdk 1.8.0_201 ・ Eclipse-Version: 2018-12 (4.10.0) ・ Junit_4.12.0

Ziel

In der Lage sein, Komponententests für mit Java erstellte Klassen durchzuführen.

Was ist Junit?

Für die erstellte Klasse in der Java-Version des Testframeworks xUnit Sie können die Operation testen, indem Sie die Methode der zu testenden Klasse aus dem erstellten Junit-Code aufrufen.

Da der einmal erstellte Testcode wiederverwendet werden kann, verglichen mit der Methode, jedes Mal Testcode zu erstellen Die Anzahl der Testschritte kann reduziert werden.

Vorsichtsmaßnahmen zum Testen mit Junit

  1. Muss eine öffentliche Methode sein.
  2. Der Rückgabewert ist ungültig.
  3. Hat keine Argumente.
  4. Fügen Sie der Testmethode die Annotation org.junit.Test hinzu.

Erstellen Sie eine zu testende Klasse.

Dieses Mal habe ich eine Klasse Calculator.java erstellt, die Multiplikation und Division durchführt.

Calculator.java


package junit.tutorial;

public class Calculator {

	/**
	 *Gibt das Ergebnis der Multiplikation von x und y zurück
	 * @param x
	 * @param y
	 * @return Gibt das Ergebnis der Multiplikation von x und y zurück
	 */
	public int maltiplication(int x,int y) {
		return x * y;
	}

	/**
	 *Gibt das Ergebnis der Division von x und y zurück
	 * @param x
	 * @param y
	 * @return Gibt das Ergebnis der Division von x und y zurück
	 */
	public int division(int x,int y) {
		return x / y;
	}
}

Erstellen Sie einen Testcode.

Erstellen Sie als Nächstes eine Testklasse. Wenn Sie eine neue Klasse erstellen, geben Sie test und dann Strg + Leertaste ein Eclipse Content Assist wird gestartet. Wählen Sie daher die Vorlage für Junit 4 aus Sie können einfach eine Methode erstellen.

Erstellen Sie zunächst eine Testklasse CalculatorTest-Klasse, in der sich nichts befindet.

CalculatorTest.java


package junit.tutorial;

public class CalculatorTest {
}

Fügen Sie hier die Vorlagenmethode mit der obigen Inhaltshilfe ein.

CalculatorTest.java


package junit.tutorial;

import static org.junit.Assert.*;

import org.junit.Test;

public class CalculatorTest {
	@Test
	public void testName() throws Exception {
		
	}
}

Beschreiben Sie im Testcode.

Dieses Mal erstellen wir den Testcode wie folgt. Schließlich kann durch Bestätigung des Ergebnisses von 3 beurteilt werden, ob der Test wie erwartet funktioniert hat.

  1. Stellen Sie den in der Methode verwendeten Eingabewert ein.
  2. Legen Sie den erwarteten Wert des Rückgabewerts der Methode fest.
  3. Geben Sie den erwarteten Wert und den gemessenen Wert an, der den Rückgabewert von 1 darstellt.

Vervollständigen Sie den Testcode.

Vervollständigen Sie den Testcode sofort. Der Methodenname ist Japanisch. So können Sie auf einen Blick sehen, was das Ausführungsergebnis überprüft hat.

Calculator.java


package junit.tutorial;

import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;

import org.junit.Test;

public class CalculatorTest {

	@Test
Sie können das Multiplikationsergebnis von 5 und 2 mit öffentlicher nichtiger Maltiplikation erhalten() throws Exception {
		Calculator sut = new Calculator();
		int expected = 10;
		int actual = sut.maltiplication(5, 2);
		assertThat(actual,is(expected));
	}

	@Test
Sie können das Teilungsergebnis von 5 und 8 durch öffentliche nichtige Teilung erhalten() throws Exception {
		Calculator sut = new Calculator();
		int expected = 
		
	}
}

Beim Festlegen des erwarteten Werts des Testcodes stelle ich fest, dass der Rückgabewert aufgrund der Division mit int nicht gut ist. In Reaktion auf diese Tatsache wird die zu testende Klasse geändert.

Calculator.java


package junit.tutorial;

public class Calculator {

	/**
	 *Gibt das Ergebnis der Multiplikation von x und y zurück
	 * @param x
	 * @param y
	 * @return Gibt das Ergebnis der Multiplikation von x und y zurück
	 */
	public int maltiplication(int x,int y) {
		return x * y;
	}

	/**
	 *Gibt das Ergebnis der Division von x und y zurück
	 * @param x
	 * @param y
	 * @return Gibt das Ergebnis der Division von x und y zurück
	 */
	public float division(int x,int y) {
		return (float)x / (float)y;
	}
}

Ich habe den Rückgabetyp auf float gesetzt und den Rückgabewert umgewandelt. Nun zurück zum Testen der Codeerstellung.

CalculatorTest.java


package junit.tutorial;

import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;

import org.junit.Test;

public class CalculatorTest {

	@Test
Sie können das Multiplikationsergebnis von 5 und 2 mit öffentlicher nichtiger Maltiplikation erhalten() throws Exception {
		Calculator sut = new Calculator();
		int expected = 10;
		int actual = sut.maltiplication(5, 2);
		assertThat(actual,is(expected));
	}

	@Test
Sie können das Teilungsergebnis von 5 und 8 durch öffentliche nichtige Teilung erhalten() throws Exception {
		Calculator sut = new Calculator();
		float expected = 0.625f;
		float actual =  sut.division(5, 8);
		assertThat(actual,is(expected));

	}
}

Sie können den Test jetzt ausführen. Lassen Sie uns nun einen Test als Junit in Eclipse ausführen und das Ergebnis überprüfen.

image1.png

-Alle Anzeigen sind grün auf dem Bildschirm. -Das Ausführungsergebnis muss in 2/2 abgeschlossen sein.

Aus den obigen Ergebnissen wurde herausgefunden, dass die Methode wie erwartet funktionierte.

Dies ist die Grundoperation von Junit.

Ich möchte den Umriss des Tests mit Junit studieren.

Verweise

[Einführung in die JUnit-Praxis ── Testtechnik für systematische Lerneinheiten WEB + DB PRESS plus] https://www.amazon.co.jp/dp/B07JL78S95/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1

Recommended Posts

Machen Sie einen Unit-Test mit Junit.
Testen Sie die Web-API mit junit
Web-API-Komponententest und Integrationstest mit SpringBoot + Junit5, 4 Muster
[Java] Testen Sie private Methoden mit JUnit
Testen Sie den Spring Framework Controller mit Junit
[Schienen] Machen wir einen Unit-Test mit Rspec!
Reihenfolge der Vor- und Nachbearbeitung des JUnit-Unit-Tests
Der JUnit 5-Gradle-Test führt zu einem Fehler mit der Lombok-Annotation
Einführung eines automatisierten Java-Tests mit JUnit 5 + Gradle
[Java] So testen Sie, ob es in JUnit null ist
[CircleCI 2.0] [Java] [Maven] [JUnit] Aggregieren Sie die JUnit-Testergebnisse mit CircleCI 2.0
Integrationstest mit Gradle
So testen Sie Interrupts während Thread.sleep mit JUnit
Einfacher JUnit-Test der Elasticsearch 2018-Version mit Embedded-Elasticsearch
Java Unit Test Library-Arterien-Probe
[Schienen] Test mit RSpec
Testcode mit Mock mit JUnit (EasyMock Center)
Automatisch mit Messgerät testen
Lasttest mit JMeter
Mischen Sie Testfälle mit JUnit 5 und Standardmethoden
So führen Sie mit RxAndroid einen Komponententest mit JVM an einer Quelle durch
Testen Sie den Inhalt einer Excel-Datei mit JUnit
[JUnit 5-kompatibel] Schreiben Sie einen Test mit JUnit 5 mit Spring Boot 2.2, 2.3
[JUnit 5] Schreiben Sie einen Validierungstest mit Spring Boot! [Parametrisierungstest]
Ich habe jetzt einen Test mit Spring Boot + JUnit 5 geschrieben
[Java] JUnit4-Testfallbeispiel
JUnit 5 schlägt mit java.lang.NoSuchMethodError fehl: org.junit.platform.launcher.Launcher.execute
[IntelliJ IDEA] Unit-Test durchführen
Testen Sie Active Strage mit RSpec
Einführung in Micronaut 2 ~ Unit Test ~
Unit-Test der Architektur mit ArchUnit
Testen Sie den GraphQL-Resolver mit rspec
Testen Sie private Methoden in JUnit
[JUnit] Testen Sie die ausgelöste Ausnahme
Java Unit Test mit Mockito
Verwenden Sie Spring Test + Mockito + JUnit 4 für Spring Boot + Spring Retry Unit Test
[Java] Ich möchte Standardeingabe und Standardausgabe mit JUnit testen
Prüfung
So führen Sie einen Komponententest für Spring AOP durch
[Buchbesprechung] Unit-Test am Programmierort, der ohne Erfahrung durchgeführt werden kann (Fortsetzung 1-JUnit-)
REST-API-Test mit REST Assured Part 2
Prüfung
Ausgabe Testabdeckung mit Klee + Gradle
Beispielcode zum Testen eines Spring Boot-Controllers mit MockMvc
[Rails5] Rspec -Einheitentest beim Verschachteln-
Prüfung
Über App-Tests RSpec (Unit Test)
Prüfung
junit
JUnit-Testbericht in Maven ausgeben
Bedeutung der Existenz eines Unit-Tests (Selbstdiskussion)
Kopieren Sie den Test und fügen Sie ihn mit RSpec ein
Java Unit Test Library-Arterie / JUnit4-Array-Äquivalenz
Einschlussbeziehungen der Testliste zu AssertJ
[RSpec] Unit Test (mit gem: factory_bot)
So testen Sie eine private Methode, die ein Array- oder Argument variabler Länge in JUnit verwendet