使用junit测试DAO'm主要是我做的是在hibernate中启动一个事务,调用compare函数,然后回滚transaccion.El问题是如果我测试函数是一个事务错误我不能strip nest,我想到了实现DBUnit xml的想法,但管理似乎并不是一个好主意,在这种情况下,我用这种方法做了足够多的测试用例。 任何人都知道如何修复它而不必使用除Junit或休眠之外的任何东西吗?
这是一个例子
@Test
public void Test1GetByCodigo(){
String cod = "999999999";
DBTenant dbTenant = null;
Session sess = null;
Transaction trans = null;
ClienteBO cli = null;
Clientes clie = null;
try{
try{
dbTenant = new DBTenant();
sess = dbTenant.getTenantSession();
trans = sess.beginTransaction();
}
catch(Exception e){
fail("Error en la carga de la transaccion.Quedo alguna transaccion abierta?");
}
clie = CargaCliente(cod);
sess.save(clie);
cli = cliBL.getByCodigo(cod);
}
catch(Exception e){
trans.rollback();
dbTenant.closeSession();
fail("Error la carga del cliente.Se modifico la bse de datos Clientes??");
}
trans.rollback();
sess.clear();
dbTenant.closeSession();
ClienteBO clieEsp = CargaClienteBO(clie);
assertNotNull(clieEsp);
assertNotNull(cli);
assertEquals("Error el cliente no coincide",clieEsp,cli);
}
如果cliBL.getbycodigo function()tubiera一个事务会有错误,谢谢你的帮助谢谢
答案 0 :(得分:0)
使用hibernate为此测试设置一个内存数据库,让junit测试尽可能多地使用事务。因为数据库是在测试之前创建的,之后被丢弃,所以隔离没有问题。这article可能会有所帮助