随机化数据库行结果

时间:2010-06-22 03:05:02

标签: java postgresql jdbc proxy junit

我一直在寻找一些单元测试,假设数据库查询的结果按特定顺序排列,但正在运行的查询不包含order by子句。

我想找到更多这些单元测试,以便我可以检查测试是否在其假设中出错,或者代码在缺少指定顺序时出错。

我正在使用java,junit,spring,hibernate,dbunit,jdbc和postgresql。

我的一个想法是在某处拦截测试查询,如果查询不包含order by子句,则捕获所有结果,并以随机顺序返回。

拦截和检查查询的最简单的地方在哪里?

是否有其他简单的方法来识别此类测试?

1 个答案:

答案 0 :(得分:1)

你可以看看扩展Hibernate的EmptyInterceptor,特别是onPrepareStatement方法。如果作为参数传递的sql查询不包含order by子句,您可以尝试向其添加order by random()