Test
Un Test con jmoordbunit es un EJB que se ejecuta al iniciar el contenedor.
Anotaciones

Debe contener las siguientes anotaciones:
@Startup
@Singleton
@DependsOn(Name_ofEJB_dependiente)
Report(path="path_reportes") //Opcional
@Test (en los métodos que se realizara el testing)
Detalle:
@Startup:
Indica que se ejecutara al iniciar la aplicaciòn en el contenedor
@Singleton
Indicamos que sera unico
@DependsOn()
El primero que deseamos ejecutar debe implementar la clase @DependsOn("TestEnvironment")
Si deseamos que se ejecute después de otro , idicamos el nombre del EJB padre @DependsOn("Padre")
@Report(path="")
Indicamos la ruta en que se generaran los reportes de los test.
UnitTest
Esta clase contiene todos los mètodos necesarios para ejecutar el test.

@Inject
UnitTest unitTest;
Generalmente necesitamos Inyectar:
Repository
Services (Opcional)

Métodos
Usamos metodos:
init(): Que se ejecuta al iniciar el ejb, alli colocamos los mètodos a realizar el test e inicializamos el UnitTest
destroy(): Se ejecuta cuando de destruye el EJB.
Ejemplo:
@PostConstruct
void init() {
unitTest.start(BodegaTest.class);
// invocar metodos a realizar el test
}
@PreDestroy
public void destroy() {
unitTest.end(BodegaTest.class);
}
Test simple
Objetivo del Test:
Ejecutar un test para un metodo no creado donde queremos verificar si no hay datos en una colecciòn llamada bodega.
Metodo:
findAll()
Usamos el mètodo unitTest.assertNotEquals("metodo",resultado_esperado, expresion_evaluar);
El verificara que el resultado no sea igual a cero y contara internamente el contador del evento.
unitTest.assertNotEquals("findAll", 0, bodegaRepository.findAll().size());
Agregarlo al init()
@PostConstruct
void init() {
unitTest.start(BodegaTest.class);
findAll();
save();
}
BodegaTest.java
import com.avbravo.ejbjmoordb.pojos.UserInfo;
import com.avbravo.jmoordbunit.anotation.Report;
import com.avbravo.jmoordbunit.anotation.Test;
import com.avbravo.jmoordbunit.test.UnitTest;
import com.avbravo.microtestingejb.entity.Bodega;
import com.avbravo.microtestingejb.repository.BodegaRepository;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.ejb.DependsOn;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import javax.inject.Inject;
/**
*
* @author avbravo
*/
@Startup
@Singleton
@DependsOn("TestEnvironment")
@Test
@Report(path = "/home/avbravo/Descargas/")
public class BodegaTest {
@Inject
UnitTest unitTest;
@Inject
BodegaRepository bodegaRepository;
@PostConstruct
void init() {
unitTest.start(BodegaTest.class);
findAll();
}
@Test
private void findAll() {
unitTest.assertNotEquals(nameOfMethod(), 0, bodegaRepository.findAll().size());
}
@PreDestroy
public void destroy() {
unitTest.end(BodegaTest.class);
}
}
Cuando se ejecuta el proyecto de Test:
Podemos ver varios informes:
Resumen de los test.
Clases List: Nos muestra las clases y el total de resultados de cada operación
Podemos observar que se ejecuto en solo test sobre un método y el resultado fue exitoso, es decir la colección tiene documentos no esta vacía.
Resumen:

Clases List:

Podemos ver el detalle de los metodos ejecutados:

En este caso el test fallo, debido a que no tenemos documentos en la colecciòn.
Last updated
Was this helpful?