我将 DbUnit 与 Unitils 一起使用,这在大多数情况下都非常有效。
今天我发现了一个奇怪的问题。
情况是:
- 我使用 Hibernate,并使用“增量”生成器获得 id:
<id name="id"> <generator class="increment"/> </id>
- 我准备了测试数据集,其中最大 id 为 5。
- 我使用干净插入加载策略。
- 我有两种测试方法
test1
和test2
,每一种都在此表中添加一行。 - 方法后
test1
新添加的行的 id=6。 - 方法后
test2
新创建的行具有 id=7。
这一切都好,我明白为什么会这样。从维护的角度来看,这是一个问题。如果我在两者之间添加第三个测试方法,test2
即使没有任何改变,方法也会突然失败,因为行会得到不同的 id。
无论如何我可以强制 DbUnit 或 Hibernate 在每个测试方法之前计算下一个 id 值吗?