我使用DbUnit一起Unitils,其伟大工程大部分时间。

今天我发现了一个奇怪的问题。

情况是:

  • 我使用休眠,有身份与"增量"的产生器:
<id name="Id">
   <generator class="increment"/>
</id>
  • 我准备试验数据集,其中最大的id5.
  • 我使用清洁插入载的战略。
  • 我有两个试验方法 test1test2, ,每增加一行,在本表格。
  • test1 方法中新加入的行有id=6.
  • test2 法新建立的行有id=7.

这是都好和我为什么这个是这样。这是一个问题从维持的角度。如果我曾经加入第三测试方法之间的二,方法 test2 会突然发生故障,即使没有发生任何变化,只是因为行将得到不同的标识。

反正是有我的能力DbUnit或休眠状态来计算下一个id值之前,各个试验方法?

有帮助吗?

解决方案

第一件事情,你应该提供完整数据集,是的有 id 为好。如果不是,不要试验,或者基于你的测试后 ids.为什么不试?因为它已经过良好测试的和可靠的事情。永远记住从来没有试验的第三方图书馆,他们中的大多数已经进行测试。但是它似乎很不可能不取决于 ids.我同意,你应该写入一些模拟级为解决这一问题,或可能是你可以提供一些传手的方法要复盖所产生的数值你自己的。

第二项选择总是开始你的测试的情况有空表。你可以写一个固定装置的清洁表为您,以前每一个测试案例。

其他提示

解决是不是依赖产生的id:

  • 他们在外面控制的测试。
  • 如果你让他们控制的测试,你没有再测试的类试验
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top