我一直在寻找一些单元测试,假设数据库查询的结果按特定顺序排列,但正在运行的查询不包含order by
子句。
我想找到更多这些单元测试,以便我可以检查测试是否在其假设中出错,或者代码在缺少指定顺序时出错。
我正在使用java,junit,spring,hibernate,dbunit,jdbc和postgresql。
我的一个想法是在某处拦截测试查询,如果查询不包含order by子句,则捕获所有结果,并以随机顺序返回。
拦截和检查查询的最简单的地方在哪里?
是否有其他简单的方法来识别此类测试?
答案 0 :(得分:1)
你可以看看扩展Hibernate的EmptyInterceptor
,特别是onPrepareStatement
方法。如果作为参数传递的sql查询不包含order by
子句,您可以尝试向其添加order by random()
。