Comment affirmer que quelque chose est nul avec Hamcrest?

144

Comment pourrais-je assertThatquelque chose null?

par exemple

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

Mais je reçois une erreur disant que je ne peux pas avoir nulldans is(null).

user2811419
la source

Réponses:

256

Vous pouvez utiliser la IsNull.nullValue()méthode:

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

assertThat(attr.getValue(), is(nullValue()));
Rohit Jain
la source
il dit que la méthode nullValue () n'est pas définie
user2811419
2
@ user2811419. Vous devez importer IsNullC'est une méthode statique dans cette classe. Faites simplement static import, ou utilisez IsNull.nullValue().
Rohit Jain
Ajoutez import static org.hamcrest.core.IsNull.nullValue;à votre classe.
Rohit Jain
4
Dans les nouvelles versions de Hamcrest, l'espace de noms a changé et vous en avez besoin import static org.hamcrest.CoreMatchers.nullValue.
ThomasW
30

pourquoi ne pas utiliser assertNull(object)/ assertNotNull(object)?

Chetya
la source
8
+1 Je préfère généralement les assertions de Hamscrest mais c'est un cas où l'assertion de Junit est juste plus lisible, IMO.
spaaarky21
9
assertThat () donne une journalisation bien meilleure que la plupart des autres méthodes assert *. La norme de codage de test que j'utilise favorise assertThat () par rapport à toutes les autres méthodes d'assertion pour cette raison.
efelton
3
Le principal avantage lorsque vous utilisez assertThat vs assertNul est qu'il est plus proche d'une phrase parlée en anglais, essayez simplement de lire l'une de vos affirmations pour la vérifier.
belgoros
L'utilisation d'un errorCollector est une bonne raison d'utiliser les matchers hamcrest opposés à assertNull / assertNotNull.
Tyler MacMillan
15

Si tu veux hamcrest, tu peux faire

import static org.hamcrest.Matchers.nullValue;

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

Dans Junitvous pouvez faire

import static junit.framework.Assert.assertNull;
assertNull(object);
Sajan Chandran
la source
11

Utilisez ce qui suit (de Hamcrest):

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

Dans Kotlin isest réservé alors utilisez:

assertThat(attr.getValue(), `is`(nullValue()));
panthère noire
la source
Y a-t-il une alternative où nous n'avons pas à échapper à la is?
VIN du