2010-08-17 6 views
0

Voici un cas de test qui teste le fonctionnement de org.dbunit.Assertion.assertEquals (Itableau a, b Itableau)DBUnit affirmation pas l'échec de lancer correctement

@Test 
public void testAssertion() { 
    try { 
     //Creating actual table with 2 columns 
     DefaultTable actual = new DefaultTable("table_name", 
       new Column[] { new Column("col1", DataType.INTEGER), 
         new Column("col2", DataType.VARCHAR) }); 
     actual.addRow(new Object[] { 1, "ABCD" }); 
     actual.addRow(new Object[] { 2, "BABCD" }); 
     actual.addRow(new Object[] { 3, "CCGF" }); 

     //Creating expected table with same 2 columns 
     DefaultTable expected = new DefaultTable(expected 
       .getTableMetaData()); 
     expected.addRow(new Object[] { 1, "ABCD" }); 
     expected.addRow(new Object[] { 2, "BBCD" }); 

     // Check the actual vs expected 
     Assertion.assertEquals(actual, expected); 
     //This should return a test failure since actual & expected are different. 
     //But its not throwing any test case failure. 
    } catch (DataSetException e1) { 
     e1.printStackTrace(); 
    } catch (DatabaseUnitException e) { 
     e.printStackTrace(); 
    } 
} 

ici à la fois les valeurs de l'DefaultTable sont incompatibles et Toujours JUnit n'échoue pas le testcase ci-dessus. Je cours à partir de l'éclipse et il en résulte 0 erreurs et 0 échecs avec un Tests racinées sous la testcase comme comme suit,

testAssertion [Runner: JUnit 4] 
[+] Unrooted Tests [Runner: JUnit 4] 

Je débogués l'API DBUnit et il jette exception de non-concordance des données selon les besoins, mais Enfin, lors du retour de SpringJUnit4ClassRunner, il n'est pas considéré comme un échec de test.

Je suppose que quelque chose me manque ici. SVP corrigez-moi ou faites-moi savoir une solution pour cela. Merci à l'avance.

+0

Tout ce que je peux dire est, continuer à faire votre exemple de plus en plus simple, jusqu'à ce que vous trouverez ce qui est passe. –

+0

@Daniel: Merci pour vos commentaires. J'ai ajouté quelques commentaires pour le rendre plus compréhensible et je ne pouvais pas aller plus loin plus simple sur cet exemple et l'erreur persiste toujours. Si jette une erreur je pourrais avoir fait un peu de googling, mais ce n'est pas jeter des erreurs/erreurs :( – raksja

Répondre

-1

L'assertion DBUnit déclenche AssertionError.

Ce que je trouve la meilleure façon d'obtenir la raison d'exception exacte était de l'attraper, par exemple: -

try 
{ 
    Assertion.assertEquals(expectedTable, actualTable); 
} 
catch (AssertionError e) 
{ 
    logger.error("Assertion failed with error : " + e.getMessage()); 
} 
Questions connexes