我正在为DAO类编写单元测试,我刚刚做了一些更改。由于这个DAO的性能非常重要,所以我想在单元测试中对性能进行一些检查。而且由于我对这个DAO的更改可能会导致多次查询,我想检查一下DAO是否只查询DB一次。否则,单元测试应该失败。检查DAO在单元测试中的性能/查询次数
我不知道这是否可能。请帮助:)
我正在为DAO类编写单元测试,我刚刚做了一些更改。由于这个DAO的性能非常重要,所以我想在单元测试中对性能进行一些检查。而且由于我对这个DAO的更改可能会导致多次查询,我想检查一下DAO是否只查询DB一次。否则,单元测试应该失败。检查DAO在单元测试中的性能/查询次数
我不知道这是否可能。请帮助:)
时间测试,你可以使用
时间调出注释等。
@Test(超时= 500)
你可以注入代码(使用aspectJ例如)来计算DB访问 - 当你查询数据库的计数器加需要时间观测值。
一个简单的解决办法是在实例测试方面的DAO时使用匿名类:
DAObject dao = new DAObject(){
@override
public void QueryDB(args){
incrementCounter();
long startTime = System.currentTimeMillis();
super.QueryDB(args);
_queryTime = System.currentTimeMillis() - startTime;
}
}
然后
assertEquels(counter,1);
assertTrue(_queryTime < MAX_ALLOWED_TIME);