Java 使用dbunit仅验证表中的新条目或更新条目
嗨,我遇到了dbunit中的数据集验证问题。 让我们想象一下我有这样一张桌子Java 使用dbunit仅验证表中的新条目或更新条目,java,junit,spring-test,dbunit,spring-test-dbunit,Java,Junit,Spring Test,Dbunit,Spring Test Dbunit,嗨,我遇到了dbunit中的数据集验证问题。 让我们想象一下我有这样一张桌子 //initial-dataset.xml <dataset> <user id="1" ...other fields /> <user id="3" ...other fields /> <user id="4" ...other fields /> <user id="2" ...other fields /&
//initial-dataset.xml
<dataset>
<user id="1" ...other fields />
<user id="3" ...other fields />
<user id="4" ...other fields />
<user id="2" ...other fields />
</dataset>
我想验证是否在数据库中添加了新字段,并且我不想在我的预期数据集.xml
中列出初始数据集.xml
中的所有数据
我试图添加DatabaseAssertionMode.NON_STRICT
,但使用这个属性dbunit仍然检查预期的数据集是否包含与实际数据库中的用户表中完全相同的数量或行
另一个解决方案是使用此类xml添加@DatabaseSetup
,以进行创建操作:
<dataset>
<user />
</dataset>
在这种情况下,dbunit将在运行测试之前清除user
表中的所有内容,在这种情况下,我的预期数据。xml
应该只包含我的测试执行结果。但在这种情况下,很难验证真实场景中可能发生的不同角落案例
另一个解决方案是使用unitils(dbunit下的某种包装器),但这个库有@Dataset和@ExpectedDataset的奇怪概念
例如,我担心另一个开发人员将更改smth或在initial dataset.xml
中添加新条目,然后他需要使用此新字段更新所有预期的数据集
<dataset>
<user />
</dataset>