gpt4 book ai didi

java - 使用 DBUnit 在数据库中断言更新数据的好策略是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:18:37 24 4
gpt4 key购买 nike

这里有一些(过度)简化的代码示例来描述我的单元测试方法。

公司数据集.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加载company对象,比较属性。

你应该明白了。


我的问题

第一种方法很容易编写,但我必须为每种不同的更新方法创建另一个 XML 文件。创建这么多数据集 XML 文件听起来不是个好主意。

第二种方法很简单,但是,当有不同的更新方法时,测试类将充满断言具有不同值的不同属性的方法。如果加载方法有问题,很多测试都会失败。

是否有断言数据的好方法?是否有可能避免我刚才描述的问题(或者这并不重要)?

更新

既然没有人回答这个问题,我决定接受我的回答。

最佳答案

长期以来我一直在努力测试数据库,我在几篇博文中整理了我的想法:

关于java - 使用 DBUnit 在数据库中断言更新数据的好策略是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10598243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com