Wie kann man behaupten, dass etwas mit Hamcrest null ist?


144

Wie würde ich assertThatetwas sein null?

beispielsweise

 assertThat(attr.getValue(), is(""));

Aber ich erhalte eine Fehlermeldung, dass ich nicht haben kann nullin is(null).

Antworten:


256

Sie können folgende IsNull.nullValue()Methode verwenden:

import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;

assertThat(attr.getValue(), is(nullValue()));

Es heißt, dass die Methode nullValue () nicht definiert ist
user2811419

2
@ user2811419. Sie müssen importieren IsNullEs ist eine statische Methode in dieser Klasse. Einfach machen static importoder benutzen IsNull.nullValue().
Rohit Jain

Fügen Sie import static org.hamcrest.core.IsNull.nullValue;Ihrer Klasse hinzu.
Rohit Jain

4
In neueren Versionen von Hamcrest hat sich der Namespace geändert und Sie benötigen import static org.hamcrest.CoreMatchers.nullValue.
ThomasW

30

warum nicht assertNull(object)/ verwenden assertNotNull(object)?


8
+1 Ich bevorzuge im Allgemeinen Hamscrest-Behauptungen, aber dies ist ein Fall, in dem die Junit-Behauptung nur besser lesbar ist, IMO.
spaaarky21

9
assertThat () bietet eine viel bessere Protokollierung als viele andere assert * -Methoden. Der von mir verwendete Testcodierungsstandard bevorzugt aus diesem Grund assertThat () gegenüber allen anderen Assertionsmethoden.
Efelton

3
Der Hauptvorteil bei der Verwendung von assertThat gegenüber assertNul besteht darin, dass es näher an einer englischsprachigen Phrase liegt. Versuchen Sie einfach, eine Ihrer Behauptungen zu lesen, um sie zu überprüfen.
Belgoros

Die Verwendung eines errorCollector ist ein guter Grund, die Hamcrest-Matcher zu verwenden, die dem assertNull / assertNotNull entgegengesetzt sind.
Tyler MacMillan

15

Wenn Sie möchten, hamcrestkönnen Sie tun

import static org.hamcrest.Matchers.nullValue;

assertThat(attr.getValue(), is(nullValue()));

In können JunitSie tun

import static junit.framework.Assert.assertNull;
assertNull(object);

11

Verwenden Sie Folgendes (von Hamcrest):

assertThat(attr.getValue(), is(nullValue()));

In Kotlin isist reserviert, also verwenden Sie:

assertThat(attr.getValue(), `is`(nullValue()));

Gibt es eine Alternative, bei der wir dem nicht entkommen müssen is?
Fahrgestellnummer
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.