утверждение dbunit не выдает ошибку - PullRequest
0 голосов
/ 17 августа 2010

Ниже приведен тестовый пример, в котором проверяется работа org.dbunit.Assertion.assertEquals (ITable a, ITable b)

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

Здесь оба значения DefaultTable не совпадают итем не менее JUnit не завершает тестовый пример выше.Я запускаю его из Eclipse, и это приводит к 0 ошибкам и 0 сбоям с непроверенными тестами под тестовым сценарием, как показано ниже:

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

Я отладил API DBUnit, и он выдает исключение несоответствия данных при необходимости, но, наконец, при возврате из SpringJUnit4ClassRunner он не генерируется как сбой контрольного примера.

Полагаю, что-то мне здесь не хватает.Пожалуйста поправьте меня или дайте мне знать решение для этого.Спасибо заранее.

1 Ответ

0 голосов
/ 03 апреля 2015

Утверждение DBUnit выдает AssertionError.

Что я нашел лучший способ получить точную причину исключения, это перехватить его, например: -

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