JUnit - Asserts - ¿Como comparar resultados con el JUnit?

Bueno ya sabemos como ejecutar un test con JUnit 4, ya tenemos idea de como usar cada uno de las anotaciones, pero todavía no tenemos la menor idea como validar los resultados, así que por eso hoy vamos a ver los Asserts.

Asserts  ¿Como comparar resultados con el JUnit?

JUnit proporciona métodos estáticos en la clase Assert para probar ciertas condiciones. Estos métodos de afirmación típicamente comienzan con assert y le permiten especificar el mensaje de error, el esperado y el resultado real. Un método afirmación compara el valor real devuelto por una prueba para el valor esperado, y se produce una AssertionException si la prueba de comparación falla. 

Package de la clase Assert es org.junit.Assert.


Métodos estáticos del Assert:

  • assertArrayEquals()
  • assertEquals()
  • assertTrue() 
  •  assertFalse()
  • assertNull() 
  •  assertNotNull()
  • assertSame() 
  • assertNotSame()
  • assertThat()

Assert método assertArrayEquals()


El método assertArrayEquals () probará si dos matrices son iguales entre sí. En otras palabras, si las dos matrices contienen el mismo número de elementos, y si todos los elementos de la matriz son iguales entre sí. 
Para comprobar si hay elemento de la igualdad, los elementos de la matriz se comparan utilizando sus métodos equals (). Más específicamente, los elementos de cada matriz se comparan uno a uno usando su método equals (). Eso quiere decir, que no es suficiente que las dos matrices contienen los mismos elementos. También deben estar presentes en el mismo orden. 

Ejemplo:
package ar.com.ladooscurojava.model.test;

import org.junit.Assert;
import org.junit.Test;

/**
* @author nconde
*/
public class PersonaTest {

@Test
public void testCompararStringArray() {

String[] arrayEsperado = {"uno", "dos", "tres"};
String[] arrayPrueba = {"uno", "dos", "tres"};

Assert.assertArrayEquals(arrayEsperado, arrayPrueba);
}

}

Si las matrices son iguales, los assertArrayEquals () continuará sin errores. Si las matrices no son iguales, se produce una excepción, y la prueba abortada. Cualquier código de prueba después de los assertArrayEquals () no se ejecutará.

Assert método assertEquals()

El método assertEquals() compara si dos objetos son iguales, utiliza el método equals().

Ejemplo:
package ar.com.ladooscurojava.model.test;

import org.junit.Assert;
import org.junit.Test;

/**
* @author nconde
*/
public class PersonaTest {

@Test
public void testComprarIgual() {
Assert.assertEquals("uno", "dos");
}

}


Si los dos objetos son iguales de acuerdo con la aplicación de sus equal (), el método de los assertEquals () devolverá normalmente. De lo contrario, el método assertEquals () lanzará una excepción, y la prueba se detendrá ahí. 
En este ejemplo se compara con objetos String, pero el método las assertEquals () puede comparar los dos objetos entre sí. El método de los assertEquals () también vienen en versiones que comparan tipos primitivos como int y float entre sí.


Assert métodos assertTrue() y assertFalse()

Los métodos assertTrue() y assertFalse() simplemente validan un resultado si es verdadero o falso.

Ejemplo:
package ar.com.ladooscurojava.model.test;

import org.junit.Assert;
import org.junit.Test;

/**
* @author nconde
*/
public class PersonaTest {

@Test
public void testComprarTrue() {
Assert.assertTrue(true);
}

}


Assert assertNull() y assertNotNull()

Los métodos assertNull() y assertNotNull() simplemente validan un resultado si es nulo o no.

Ejemplo:
package ar.com.ladooscurojava.model.test;

import org.junit.Assert;
import org.junit.Test;

/**
* @author nconde
*/
public class PersonaTest {

@Test
public void testComprarNull() {
Assert.assertNull(null);
}

}


Assert assertSame() y assertNotSame()

Los métodos assertSame () y assertNotSame () prueban si dos referencias a objetos apuntan al mismo objeto o no. No es suficiente que los dos objetos son iguales . Debe ser exactamente el mismo objeto al que apunta. 

Ejemplo:
package ar.com.ladooscurojava.model.test;

import org.junit.Assert;
import org.junit.Test;

/**
* @author nconde
*/
public class PersonaTest {

@Test
public void testComprarIgualPorReferencia() {
Assert.assertSame("String", "String");
}

}

Assert assertThat()

El método assertThat() compara un objeto con una org.hamcrest.Matcher para ver si el objeto concuerda con la comparacion. Matcher es una adición externa al framework JUnit. El macher es agregado por el framework called Hamcrest. A partir del Junit 4.8.2 ya viene incluido internamente  el Hamcrest.

Ejemplo:
package ar.com.ladooscurojava.model.test;

import org.junit.Assert;
import org.junit.Test;

/**
* @author nconde
*/
public class PersonaTest {

@Test
public void testComprarPorMatchet() {
Assert.assertThat("1234", is("1234"));
}

}
Links
JUnit - Asserts - ¿Como comparar resultados con el JUnit? JUnit -  Asserts  - ¿Como comparar resultados con el JUnit? Reviewed by El lado oscuro de java on junio 04, 2014 Rating: 5

No hay comentarios:

Con la tecnología de Blogger.