事情是:
我在xml中有一些数据被一个正在运行的线程占用,该线程读取数据,并且在执行某些业务逻辑之后,数据继续存在于两个表中,比如说表A和表B.
它的完成方式是表B的元组包含一个外键,它恰好是表A中条目的自动生成的id。因为我正在测试的是线程的正确性我无法控制什么可能是表A中条目的生成自动ID,我要验证的数据必须测试表A和表B的条目的连接正确性。
在预期的数据集中,我无法提供自动生成的ID和外键值,因为我不知道这一点。如果DB单元提供的设施只是用变量替换期望值并在另一个表中的相应条目中使用该变量,有没有办法做到这一点? 或者还有其他方法吗? 请帮忙......
答案 0 :(得分:0)
我想通过DBUnit通过指定确切的SQL而不是拾取单个表来接收实际数据,然后忽略结果集中的ID列,这样您将留下的所有数据都是结果集的每一行中的名称映射属性。最后是一个非常微不足道的东西:)
答案 1 :(得分:0)
如果您使用@ExpectedDatabase
检查结果,则可以指定修饰符assertionMode = DatabaseAssertionMode.NON_STRICT_UNORDERED
。
不要在结果集数据中指定id字段,它必须忽略比较中的id。