Mock

En muchas ocasiones necesitamos realizar operaciones en donde asignamos valores a los entity para ejecutar el test con esos datos.

Por ejemplo ingresamos datos al entity Bodega y ejecutamos la operaciòn save() en la colecciòn.

  • Al final podemos eliminarlo despues de realizar el test.

  • O lo dejamos para otras pruebas y al final lo eliminamos cuando terminamos el proceso.

Ejercicio:

Agregar el test del metodo save() a BodegaTest.java

Crear un Mock

Bodega bodega = new Bodega();
bodega.setIdbodega("bodega-test");
bodega.setDireccion("Panama");
bodega.setTelefono("(507)");
//User info es una clase que usa el framework para guardar referencias
//de usuarios
List<UserInfo> list = new ArrayList<>();
bodega.setUserInfo(list);
bodega.setActivo("si");

Implementamos

  • assertEquals() para verificar si logro guardarlo.

unitTest.assertEquals("save()", true,bodegaRepository.save(bodega));

Mètodo

@Test
private void save() {
try {
//Mock
Bodega bodega = new Bodega();
bodega.setIdbodega("bodega-test");
bodega.setDireccion("Panama");
bodega.setTelefono("(507)");
//User info es una clase que usa el framework para guardar referencias
//de usuarios
List<UserInfo> list = new ArrayList<>();
bodega.setUserInfo(list);
bodega.setActivo("si");
unitTest.assertEquals(nameOfMethod(), true,bodegaRepository.save(bodega));
} catch (Exception e) {
System.out.println(nameOfMethod()+" " + e.getLocalizedMessage());
}
}

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);
save();
findAll();
}
@Test
private void save() {
try {
//Mock
Bodega bodega = new Bodega();
bodega.setIdbodega("bodega-test");
bodega.setDireccion("Panama");
bodega.setTelefono("(507)");
//User info es una clase que usa el framework para guardar referencias
//de usuarios
List<UserInfo> list = new ArrayList<>();
bodega.setUserInfo(list);
bodega.setActivo("si");
unitTest.assertEquals(nameOfMethod(), true,bodegaRepository.save(bodega));
} catch (Exception e) {
System.out.println(nameOfMethod()+" " + e.getLocalizedMessage());
}
}
@Test
private void findAll() {
unitTest.assertNotEquals(nameOfMethod(), 0, bodegaRepository.findAll().size());
}
@PreDestroy
public void destroy() {
unitTest.end(BodegaTest.class);
}
}

Al ejecutar el Test

Resumen

Clases List: Pasaron todos los test.

Metodos fueron exitosos

Si ejecutamos nuevamente el test

El resumen indica que hay 1 error

Clases List

Se observa que BodegaTest tiene dos errores

Al verificar la clase BodegaTest

Se observa que el metodo que fallo fue el metodo save()

Para tener màs detalles sobre los mensajes de error podemos implementar UnitView.java