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;
}
}
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));
}
}
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.
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.
Hamcrest Tutorial Hamcrest GitHub IsNull-Klasse
Recommended Posts