Вот несколько (слишком) упрощенных примеров кода для описания моего метода модульного тестирования.
<dataset>
<company company_key="100" company_name="OldName" />
</dataset>
@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 с наборами данных не кажется хорошей идеей.
Второй способ прост, однако при наличии разных методов обновления тестовый класс будет заполнен методами, которые утверждают разные свойства с разными значениями. И многие тесты будут сломаны, если что-то не так с методом загрузки.
Есть ли хороший способ подтвердить данные? можно ли избежать проблемы, которую я только что описал (или это не имеет большого значения)?
Поскольку никто не ответил на вопрос, я решил принять свой ответ.