2010-08-17 3 views
0
다음

모두 DefaultTable의 값이 일치하지 여기서 org.dbunit.Assertion.assertEquals의 작업 (ITable A, ITable의 b)DBUnit를 주장 던지고하지 않으면 올바르게

@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(); 
    } 
} 

를 테스트하는 테스트 케이스 인 여전히 JUnit은 위의 테스트 케이스를 실패하지 않습니다. 나는 이클립스에서 그것을 실행하고는 0 오류 및 다음과 같은 테스트 케이스 아래 루팅 해제 테스트와 0 실패 결과,

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

는 내가하고 DBUnit API를 디버깅하고 필요에 따라 데이터 불일치 예외를 던지고 있지만, 마지막으로 SpringJUnit4ClassRunner에서 리턴 할 때 테스트 케이스 실패로 던지지 않는다.

나는 여기에 뭔가 빠져 있다고 가정합니다. Pls 날을 수정하거나이 해결책을 알려 주시기 바랍니다. 감사드립니다.

+0

내가, 당신이 무엇을 찾을 때까지 예를 더욱 더 간단하게 유지되어 말할 수 계속. –

+0

@ 대니얼 : 의견을 보내 주셔서 감사합니다. 더 이해할 수 있도록 몇 가지 설명을 추가했으며이 예제에서 더 간단하게 진행할 수 없었으며 오류가 계속 발생합니다. 그것은 어떤 오류를 던지고있다면 내가 몇 가지 인터넷 검색을 할 수 있지만, 어떤 실패/오류를 던지지 않는 : ( – raksja

답변

-1

어설 션은 DBUnit throw AssessionError입니다. 나는 정확한 예외 이유를 얻을 수있는 가장 좋은 방법을 발견 무엇

예를 들어, 잡으려고했다 : -

try 
{ 
    Assertion.assertEquals(expectedTable, actualTable); 
} 
catch (AssertionError e) 
{ 
    logger.error("Assertion failed with error : " + e.getMessage()); 
} 
관련 문제