DbUnit:问题与增加标识生成
-
19-09-2019 - |
题
我使用DbUnit一起Unitils,其伟大工程大部分时间。
今天我发现了一个奇怪的问题。
情况是:
- 我使用休眠,有身份与"增量"的产生器:
<id name="Id"> <generator class="increment"/> </id>
- 我准备试验数据集,其中最大的id5.
- 我使用清洁插入载的战略。
- 我有两个试验方法
test1
和test2
, ,每增加一行,在本表格。 - 后
test1
方法中新加入的行有id=6. - 后
test2
法新建立的行有id=7.
这是都好和我为什么这个是这样。这是一个问题从维持的角度。如果我曾经加入第三测试方法之间的二,方法 test2
会突然发生故障,即使没有发生任何变化,只是因为行将得到不同的标识。
反正是有我的能力DbUnit或休眠状态来计算下一个id值之前,各个试验方法?
解决方案
第一件事情,你应该提供完整数据集,是的有 id
为好。如果不是,不要试验,或者基于你的测试后 ids
.为什么不试?因为它已经过良好测试的和可靠的事情。永远记住从来没有试验的第三方图书馆,他们中的大多数已经进行测试。但是它似乎很不可能不取决于 id
s.我同意,你应该写入一些模拟级为解决这一问题,或可能是你可以提供一些传手的方法要复盖所产生的数值你自己的。
第二项选择总是开始你的测试的情况有空表。你可以写一个固定装置的清洁表为您,以前每一个测试案例。
其他提示
解决是不是依赖产生的id:
- 他们在外面控制的测试。
- 如果你让他们控制的测试,你没有再测试的类试验
不隶属于 StackOverflow