1

DAOのテストはjunitを使用しており、主に私が行うことは、休止状態でトランザクションを開始し、compare関数を呼び出してから、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 function()tubieraトランザクションにバグがある場合は、ご協力いただきありがとうございます。

4

1 に答える 1

0

hibernateを使用してこのテスト用のインメモリデータベースをセットアップし、junitテストでトランザクションを好きなだけ使用できるようにします。データベースはテストの前に作成され、後で破棄されるため、分離に問題はありません。この記事は役立つかもしれません

于 2012-10-18T09:23:09.680 に答える