[JAVA] Persönliche Zusammenfassung der in JUnit 4 häufig verwendeten Typen

Einführung

[Einführung in die JUnit-Praxis](https://www.amazon.co.jp/JUnit%E5%AE%9F%E8%B7%B5%E5%85%A5%E9%96%80-~%E4%BD% 93% E7% B3% BB% E7% 9A% 84% E3% 81% AB% E5% AD% A6% E3% 81% B6% E3% 83% A6% E3% 83% 8B% E3% 83% 83% E3% 83% 88% E3% 83% 86% E3% 82% B9% E3% 83% 88% E3% 81% AE% E6% 8A% 80% E6% B3% 95-WEB-PRESS-plus / dp / Wenn Sie 477415377X) haben, ist daran nichts auszusetzen, aber ich habe es oft nicht, daher fasse ich nur diejenigen zusammen, die es häufig verwenden.

Basic

@Test
public void test1() {
	String actual = "hoge";
	String expected = "hoge";
	assertThat(actual, is(expected));
}

@Test
public void test2() {
	String actual = null;
	assertThat(actual, is(nullValue()));
}

@Before
public void setUp() throws Exception {
}

@After
public void tearDown() throws Exception {
}

@BeforeClass
public static void setUpBeforeClass() throws Exception {
}

@AfterClass
public static void tearDownAfterClass() throws Exception {
}

Die mit "@ Test" kommentierte Methode ist die eigentliche Testmethode. Vergleichen Sie den erwarteten Wert mit dem tatsächlichen Wert mit "assertThat ()". Im Beispiel werden "is ()" und "nullValue ()" verwendet, es gibt jedoch auch andere Verwendungen wie "not ()".

"@ Before" wird ausgeführt, bevor jede Methode von "@ Test" ausgeführt wird, und "@ After" wird ausgeführt, nachdem jede Methode von "@ Test" ausgeführt wurde. Wenn jedem Test ein Prozess gemeinsam ist, z. B. das Verbinden und Trennen mit der Datenbank, können Sie ihn hier schreiben.

"@ BeforeClass" wird nur einmal ausgeführt, bevor alle "@ Test" -Methoden ausgeführt werden, und "@ AfterClass" wird nur einmal ausgeführt, nachdem alle "@ Test" -Methoden ausgeführt wurden. @ BeforeClass wird verwendet, wenn Testparameter aus Eigenschaftendateien abgerufen werden. Ich glaube nicht, dass ich @ AfterClass sehr oft benutze ...

Im Beispiel ist nichts wie "@ Before" geschrieben, aber Sie können hier einen Test mit "assertThat ()" schreiben. Sie können den Status auch vor und nach jedem Prozess testen.

Bei der Aufteilung des Tests in mehrere Teile


@RunWith(Enclosed.class)
public class JUnitTest {

	public static class TestClass1 {
		@Before
		public void setUp() throws Exception {
			//Vorverarbeitung für Testklasse 1
		}

		@After
		public void tearDown() throws Exception {
			//Nachbearbeitung für Testklasse 1
		}

		@Test
		public void test() {
			String actual = "hoge";
			String expected = "hoge";
			assertThat(actual, is(expected));
		}
	}
	
	public static class TestClass2 {
		@Before
		public void setUp() throws Exception {
			//Vorverarbeitung für Testklasse 2
		}

		@After
		public void tearDown() throws Exception {
			//Nachbearbeitung für Testklasse 2
		}

		@Test
		public void test() {
			String actual = "fuge";
			String expected = "fuge";
			assertThat(actual, is(expected));
		}
	}

}

Wenn die Vorverarbeitung für jeden Test unterschiedlich ist, fügen Sie der Testklasse "@RunWith (Enclosed.class)" hinzu und erstellen Sie dann eine innere Klasse. Im Beispiel können "TestClass1" und "TestClass2" unterschiedliche Vor- und Nachbearbeitungen ausführen. Es ist praktisch, aber ich vergesse jedes Mal, wie man die Anmerkung "@RunWith (Enclosed.class)" schreibt.

Bei Wiederholung ähnlicher Tests


@RunWith(Theories.class)
public class JUnitTest {

	@DataPoints
	public static String[] actualValues = {"hoge", "fuge"};

	@Theory
	public void test(String actualValue) {
		int actual = actualValue.length();
		int expected = 4;
		assertThat(actual, is(expected));
	}

}

Wenn es mehrere Tests mit ähnlichen Eingabe- und Ausgabeformaten gibt, ist es besser, sie bis zu einem gewissen Grad zusammenzustellen. Geben Sie für die Testklasse "@RunWith (Theories.class)" und für die Testmethode "@ Theory" anstelle von "@ Test" an. Wenn Sie die Eingabe und Ausgabe des Tests in ein Array von "@ DataPoints" einfügen und den Wert des durch "@ DataPoints" angegebenen Typs im Argument der Methode "@ Theory" angeben, ist dies "@ Theory". Wenn die Methode ausgeführt wird, wird der Test für die Anzahl der Arrays von "@ DataPoints" ausgeführt.

Recommended Posts

Persönliche Zusammenfassung der in JUnit 4 häufig verwendeten Typen
Persönliche Entwicklung: Zusammenfassung der Techniken, die beim Lachen von Gasha angewendet werden (Schaben, Schienen, Heroku)
[Github] Zusammenfassung häufig verwendeter Befehle während der Entwicklung
Zusammenfassung der häufig verwendeten Befehle in Rails und Docker
Rufen Sie den Namen des Testfalls in der JUnit-Testklasse ab
Edelstein oft in Schienen verwendet
Der Fall, dass @Autowired in JUnit5 nicht verwendet werden konnte
Häufig verwendete Syntaxbeispiele in Java
Über häufig verwendete Methoden in der Entwicklung
Zusammenfassung von ORM "uroboroSQL", das in Enterprise Java verwendet werden kann
Test-API, die häufig in AssertJ verwendet wird
Zusammenfassung häufig verwendeter Docker-Befehle
Mechanismus und Merkmale der in Java häufig verwendeten Collection-Implementierungsklasse
Häufig verwendete Befehle für MySQL-Operationen
Reihenfolge der Verarbeitung im Programm
Was sind die Regeln in JUnit?
Ruby-Methoden, die häufig in Rails verwendet werden
Zusammenfassung der Bibliotheken, die in der jüngsten Android-Entwicklung (2019/11) häufig verwendet zu werden scheinen
Fehler, wenn das in SpringWebFlux verwendete Mitglied der Entity-Klasse endgültig ist
Geben Sie das Standard-JAVA_HOME an, das in Buildship verwendet wird
Holen Sie sich das Ergebnis von POST in Java
[Java] Persönliche Zusammenfassung der bedingten Anweisungen (grundlegend)
Zusammenfassung der Stammklassen in verschiedenen Sprachen
Zusammenfassung der Hashes und Symbole in Ruby
[Persönlich] JUnit5-Memorandum-Memo (in Arbeit)
Die Geschichte des Schreibens von Java in Emacs
Schreiben Sie die Bewegung von Rakefile in das Runbook
Wenn Sie die Testabdeckung privater Methoden in JUnit erfüllen möchten
Informationen zur Bedeutung von Typvariablen, E, T usw., die in in Java verwendeten Generika verwendet werden
Zusammenfassung der Auswahl von Elementen in Selen
[Bestellmethode] Legen Sie die Reihenfolge der Daten in Rails fest
[Ruby] Zusammenfassung der Klassendefinitionen. Beherrsche die Grundlagen.
Die Geschichte des einfachen String-Vergleichs in Java
[Java] Behandlung von Java Beans in der Methodenkette
Die Geschichte eines gewöhnlichen Othello in Java
Über die Idee anonymer Klassen in Java
[Java] Persönliche Zusammenfassung der Klassen und Methoden (grundlegend)
Verwenden Sie das in Android Studio verwendete JDK im Terminal
Die Geschichte des Lernens von Java in der ersten Programmierung
Zusammenfassung der neuen Funktionen, die in Deeplearning4J 1.0.0-beta4 hinzugefügt wurden
Überschreiben Sie den Inhalt der Konfiguration mit Spring-boot + JUnit5
Spüren Sie den Lauf der Zeit auch in Java
Reihenfolge der in Swift verwendeten Modifikatoren (siehe SwiftLint)
Importieren Sie Dateien derselben Hierarchie in Java
Zusammenfassung dessen, was ich in Spring Batch gelernt habe
[Persönliches Memorandum] Anordnung der mit javafx von Eclipse erstellten Schaltflächen (im Fall von HBox / VBox)
Zusammenfassung der Verwendung des im IE festgelegten Proxy-Sets bei der Verbindung mit Java