[Java] So testen Sie, ob es in JUnit null ist

Hintergrund

Beim Schreiben eines Komponententests für vorhandenen Quellcode musste ein Test durchgeführt werden, um zu überprüfen, ob er wie im Titel angegeben null war. Ich habe kurz zusammengefasst, was ich dabei gelernt habe.

Das Tool und die Version, die ich verwende, sind JUnit 4 (.12) und Hamcrest ist 1.3.

Dieses Mal werde ich es unter der Annahme schreiben, dass ich einen Test im Präfix-Addierer von ↓ schreiben werde.

PrefixAdder.java


public class PrefixAdder {
  public static String execute(String target, String prefix) {
    if (Objects.isNull(target)) {
      return null;
    }
    return prefix + target;
  }
}

Fehlerbeispiel

Zuerst habe ich versucht, das Folgende wie gewohnt intuitiv zu schreiben, aber diese Art des Schreibens führt zu einem Kompilierungsfehler auf einer Ebene, die die IDE warnt.

PrefixAdderTest.java


public class PrefixAdderTest {
  @Before
  public void setUp() {
  }

  @Test
  public void returnNullWhenTargetIsNull() {
    String result = PrefixAdder.execute(null, "prefix");
    //↓ Kompilierungsfehler
    assertThat(result, is(null));
  }
}

Erfolgsgeschichte

Um es zu schreiben, verwenden Sie die nullValue-Methode der IsNull-Klasse von Hamcrest.

PrefixAdderTest.java


public class PrefixAdderTest {
  @Before
  public void setUp() {
  }

  @Test
  public void returnNullWhenTargetIsNull() {
    String result = PrefixAdder.execute(null, "prefix");
    assertThat(result, nullValue());
  }
}

Jetzt können Sie auf null testen. Wenn Sie testen möchten, dass es nicht null ist, können Sie auch die notNullValue-Methode der IsNull-Klasse verwenden.

Zusammenfassung

Wenn Sie einen Test schreiben möchten, der überprüft, ob ein Wert in JUnit null ist, verwenden Sie die nullValue-Methode der IsNull-Klasse von Hamcrest. Wenn Sie die is-Methode der Is-Klasse wie gewohnt verwenden, tritt ein Kompilierungsfehler auf.

Es ist einfach, aber ich hoffe, dieser Artikel hat Ihnen ein wenig geholfen.

Referenz

Hamcrest Tutorial Hamcrest GitHub IsNull-Klasse

Recommended Posts

[Java] So testen Sie, ob es in JUnit null ist
So testen Sie den privaten Bereich mit JUnit
So testen Sie Interrupts während Thread.sleep mit JUnit
[Java] Testen Sie private Methoden mit JUnit
Untersucht, wie Dienste mit Watson SDK für Java aufgerufen werden
[Java] Ich möchte Standardeingabe und Standardausgabe mit JUnit testen
So kompilieren Sie Java mit VsCode & Ant
[Java] Fassen Sie zusammen, wie Sie mit der Methode equals vergleichen können
So filtern Sie den JUnit-Test in Gradle
Einführung eines automatisierten Java-Tests mit JUnit 5 + Gradle
[CircleCI 2.0] [Java] [Maven] [JUnit] Aggregieren Sie die JUnit-Testergebnisse mit CircleCI 2.0
Einführung automatisierter Java-Tests mit JUnit 5 + Apache Maven
So testen Sie eine private Methode, die ein Array- oder Argument variabler Länge in JUnit verwendet
[Java] So drehen Sie ein zweidimensionales Array mit einer erweiterten for-Anweisung
JUnit 5: Wie man Testfälle in enum schreibt
Verwendung des Java-Frameworks mit AWS Lambda! ??
Verwendung der Java-API mit Lambda-Ausdrücken
So verbergen Sie Nullfelder als Antwort in Java
[Java] (für MacOS) Methode zur Einstellung des Klassenpfads
So schreiben Sie Testcode mit Basic-Zertifizierung
Machen Sie einen Unit-Test mit Junit.
[Java] Wie man mehrere for-Schleifen einzeln macht
So führen Sie UT mit Excel als Testdaten mit Spring Boot + JUnit5 + DBUnit durch
Aufrufen von Funktionen in großen Mengen mit Java Reflection
So schreiben Sie einen Komponententest für Spring Boot 2
So erstellen Sie eine Docker-Umgebung mit Gradle for IntelliJ
[Java] So lassen Sie die Federkonstruktorinjektion mit Lombok weg
So stellen Sie Java mit Serverless Framework für AWS Lambda bereit
So führen Sie mit RxAndroid einen Komponententest mit JVM an einer Quelle durch
So führen Sie einen Java-Komponententest durch (JUnit & Mockito & PowerMock)
Umgang mit Keine Vorlage für interaktive Anfragen
[Für Anfänger] So bedienen Sie die Stream-API nach Java 8
[Java] Verschlüsselung mit AES-Verschlüsselung mit Standardbibliothek
Verwendung von Truth (Assertion Library für Java / Android)
Versuchen Sie, mit Java eine Verbindung zu AzureCosmosDB Emulator for Docker herzustellen
So erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
Wie man modernes Java schreibt. Unveränderliches Java, Null Betrachten Sie die Sicherheit.
So schleifen Sie Java Map (für jede / erweiterte for-Anweisung)
Ausführen des WebCamCapture-Beispiels von NyARToolkit für Java
[Java] So unterbrechen Sie eine Zeile mit StringBuilder
[Java] JUnit4-Testfallbeispiel
So senken Sie die Java-Version
[Java] Verwendung von Map
Testen Sie die Web-API mit junit
So deinstallieren Sie Java 8 (Mac)
Java zum Spielen mit Function
Java - So erstellen Sie JTable
Verwendung von Java Optional
Verwendung von JUnit (Anfänger)
So minimieren Sie Java-Images
Wie schreibe ich einen Java-Kommentar
Verwendung der Java-Klasse
[Java] Verwendung von removeAll ()
[Java] So zeigen Sie Wingdings an
2018 Java Proficiency Test für Newcomer-Basics-