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

Last updated