使用Junit4和Hibernate的Java测试DAO(Test DAO in java usin

2019-09-27 23:58发布

使用测试DAO'm JUnit和主要我做的是在休眠启动一个事务,调用比较函数,然后回滚transaccion.El问题是,如果我的测试功能是一个交易错误,我不能剥夺窝,我想过实施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()函数tubiera交易将有一个错误,谢谢您的帮助,谢谢

Answer 1:

设立这个试验中使用Hibernate的内存数据库,让JUnit测试使用的交易,它更喜欢。 因为数据库在测试之前创建和扔掉之后有一个与隔离没有问题的。 该文章可能有助于



文章来源: Test DAO in java using Junit4 and Hibernate