DBUnit oracle可以确定在给定测试之后写入的表

时间:2011-08-31 07:25:41

标签: oracle dbunit

我有一个ca.的应用程序。 200张桌子和约。 20个java服务器/批处理程序。 我有一套很好的系统测试套装。 这些JUnit测试是黑盒测试,它们通过系统接口发送事务,然后通过接口检查预期的行为。

我也有一个非常好的CI设置,其中签入触发编译类型检查,但我想将这些检查扩展为适当的单元测试用例。 通过单元测试用例我真的是指单个java服务器或Batch程序加上数据库(模拟对象具有可疑值)。 已经完成了一半的工作,因为我可以在单元测试中使用系统测试中的检查,但现在的主要问题当然是如何在单元测试期间将数据库置于已知状态。

我一直在寻找DBUnit来帮助这里,数据集/清理插入功能非常酷。 我现在的主要问题是有没有办法获得2点之间的表格变化列表? 例如,我运行一个专注于组件X的系统测试套件。在测试套件中确定哪些表已插入/删除/更新的最简单方法是什么? 任何反馈意见 彼得

2 个答案:

答案 0 :(得分:1)

您可以使用AUDITtable monitoring以及ALL_TAB_MODIFICATIONS。后者更多的是保持数据库统计数据是最新的,因此不打算100%可靠地用于此目的。例如,它可能无法正确处理回滚。

答案 1 :(得分:0)

我认为这些信息不会在Oracle系统目录中(或通过不同的方式)提供。

我能想到的唯一解决方案是在每个表上创建一个(语句)触发器,用于将DML语句的时间记录到某个审计表中。您的测试可以在运行之前截断审计表,然后再检查它。

由于触发器非常简单,因此应该可以通过例如自动创建它们。一个PL / SQL块。