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).

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()));

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)?


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);

11

Utilisez ce qui suit (de Hamcrest):

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

Dans Kotlin isest réservé alors utilisez:

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

Y a-t-il une alternative où nous n'avons pas à échapper à la is?
— VIN du
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.