¿Cómo afirmar que algo es nulo con Hamcrest?


144

¿Cómo sería assertThatalgo null?

por ejemplo

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

Pero me da un error que dice que no puedo tener nullen is(null).

Respuestas:


256

Puedes usar el IsNull.nullValue()método:

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

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

se dice nullValue método () no está definido
— user2811419

2
@ usuario2811419. Necesitas importar IsNullEs un método estático en esa clase. Solo hazlo static importo úsalo IsNull.nullValue().
— Rohit Jain

Agrega import static org.hamcrest.core.IsNull.nullValue;a tu clase.
— Rohit Jain

44
En las versiones más recientes de Hamcrest, el espacio de nombres ha cambiado y lo necesita import static org.hamcrest.CoreMatchers.nullValue.
— ThomasW

30

¿Por qué no usar assertNull(object)/ assertNotNull(object)?


8
+1 Generalmente prefiero las afirmaciones de Hamscrest, pero este es un caso en el que la afirmación de Junit es más legible, en mi opinión.
— spaaarky21

9
afirmar que () proporciona un registro mucho mejor que muchos de los otros métodos de aserción *. El estándar de codificación de prueba que utilizo favorece afirmar que () sobre todos los demás métodos de afirmación por este motivo.
— efelton

3
La principal ventaja cuando se utiliza afirmarThat vs afirmaciónNul es que está más cerca de una frase hablada en inglés, solo intente leer cualquiera de sus afirmaciones para verificarla.
— belgoros

El uso de un errorCollector es una buena razón para usar los comparadores de Hamcrest opuestos al afirmar / nulo / nulizar.
— Tyler MacMillan

15

Si quieres hamcrest, puedes hacerlo

import static org.hamcrest.Matchers.nullValue;

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

En lo Junitque puedes hacer

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

11

Use lo siguiente (de Hamcrest):

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

En Kotlin isestá reservado, así que use:

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

¿Hay alguna alternativa en la que no tengamos que escapar is?
— VIN
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.