这里有一些(过度)简化的代码示例来描述我的单元测试方法。
公司数据集.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>
Java中的断言部分
IDataSet actual = dbConn.createDataSet(new String[]{"company"});
IDataSet expected = createDataSet("CompanyDataSet_expected.xml");
Assertion.assertEquals(expected, actual);
只需通过 DAO 加载公司对象,并比较属性。
你应该明白了。
我的问题
第一种方法很容易编写,但我必须为每种不同的更新方法创建另一个 XML 文件。创建这么多数据集 XML 文件听起来不是一个好主意。
第二种方法很简单,但是,当有不同的更新方法时,测试类将填充以不同值断言不同属性的方法。如果加载方法有问题,很多测试都会中断。
有没有断言数据的好方法?是否有可能避免我刚刚描述的问题(或者它并不重要)?
更新
由于没有人回答这个问题,我决定接受我的回答。