Muchas ocasiones deseamos hacer testing de las bases de datos sin afectar las de producción
podemos utilizar el método repository.setDatabase(nombre-base-datos) para indicar la base de datos con la que deseamos hacer las pruebas, si no existe se creara en tiempo de ejecución.
Debemos establecerlo en el método init()
rolRepository.setDatabase("transporte_test");
Ejemplo:
Tenemos una base de datos llamada transporte y deseamos hacer los test sobre una base de datos que crearemos dinamicamente llamada transporte_test
Código
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */packagecom.avbravo.transportetest.test;importcom.avbravo.avbravoutils.JsfUtil;importcom.avbravo.ejbjmoordb.pojos.UserInfo;importcom.avbravo.jmoordbunit.anotation.Test;importcom.avbravo.jmoordbunit.test.UnitTest;importcom.avbravo.transporteejb.entity.Rol;importcom.avbravo.transporteejb.repository.RolRepository;importjava.util.ArrayList;importjava.util.List;importjavax.annotation.PostConstruct;importjavax.annotation.PreDestroy;importjavax.ejb.DependsOn;importjavax.ejb.Singleton;importjavax.ejb.Startup;importjavax.inject.Inject;importorg.bson.Document;/** * * @author avbravo */@Startup@Singleton@DependsOn("ConductorTest")publicclassRolTestimplementsITest { @InjectUnitTest unitTest; @InjectRolRepository rolRepository; @PostConstructvoidinit() {unitTest.start(RolTest.class);rolRepository.setDatabase("transporte_test");findAll();save();delete(); } @PreDestroypublicvoiddestroy() {unitTest.end(RolTest.class); } @TestprivatevoidfindAll(){unitTest.assertNotEquals(nameOfMethod(),0,rolRepository.findAll().size()); } @Testprivatevoidsave(){try {Rol rol =newRol();rol.setIdrol("TEST");rol.setRol("ROL TESTING");rol.setActivo("si");List<UserInfo> userInfoList =newArrayList<>();userInfoList.add(newUserInfo("xx","avbravo",JsfUtil.getFechaActual(),"save()"));rol.setUserInfo(userInfoList);unitTest.assertTrue("save()",rolRepository.save(rol)); } catch (Exception e) {unitTest.fail("save()",rolRepository.getException().toString());System.out.println(nameOfMethod()+" "+e.getLocalizedMessage()); } } @Testprivatevoiddelete(){unitTest.assertTrue(nameOfMethod(),rolRepository.delete(newDocument("idrol","TEST"))); }}