Какова хорошая стратегия утверждения обновленных данных в базе данных с помощью DBUnit?

Вот несколько (слишком) упрощенных примеров кода для описания моего метода модульного тестирования.

CompanyDataSet.xml

<dataset>
    <company company_key="100" company_name="OldName" />
</dataset>

CompanyDaoTest.java

@Test
public void testUpdateCompany() {
  CompanyDao companyDao = new CompanyDao();
  IDatabaseConnection dbConn = createConnection();

  IDataSet dataSet = createDataSet("CompanyDataSet.xml");
  DatabaseOperation.CLEAN_INSERT.execute(dbConn, dataSet);

  companyDao.updateCompany(100, "NewName");

  // What is a good way to assert updated company data ?
}

Я придумал два способа утверждения данных компании.

Создайте другой набор данных xml в качестве ожидаемого набора данных.

другой XML

<dataset>
    <company company_key="100" company_name="NewName" />
</dataset>

Часть Assert в Java

IDataSet actual = dbConn.createDataSet(new String[]{"company"});
IDataSet expected = createDataSet("CompanyDataSet_expected.xml");

Assertion.assertEquals(expected, actual);

Просто загрузите объект компании через DAO и сравните свойства.

вы должны получить идею.


Моя проблема

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

Второй способ прост, однако при наличии разных методов обновления тестовый класс будет заполнен методами, которые утверждают разные свойства с разными значениями. И многие тесты будут сломаны, если что-то не так с методом загрузки.

Есть ли хороший способ подтвердить данные? можно ли избежать проблемы, которую я только что описал (или это не имеет большого значения)?

ОБНОВЛЕНИЕ

Поскольку никто не ответил на вопрос, я решил принять свой ответ.

6
задан Rangi Lin 25 May 2012 в 00:47
поделиться