为什么测试全覆盖很难?
发表于:2008-09-08来源:作者:点击数:
标签:
正面观点:100%的覆盖是可以的,为什么呢?看下面的代码: 我们有这样的一个方法: public int getAccount(){ return 999; } 这样的方法走一次就可以了,你只要执行它(System.out.pringln(xxx.getAccount()))它就会乖乖的返回999, 测试 一次自然100%覆盖
|
正面观点:100%的覆盖是可以的,为什么呢?看下面的代码:
我们有这样的一个方法:
public int getAclearcase/" target="_blank" >ccount(){ return 999; }
这样的方法走一次就可以了,你只要执行它(System.out.pringln(xxx.getAccount()))它就会乖乖的返回999,测试一次自然100%覆盖,看我说的对吧!
有一天这个方法忽然变化了:
public int getAccount(int selet){ switch{ case 1: return 1; breake; case 2: return 2; breake; case 3: return 3; breake; default: return 0; breake; } }
汗,豁出去了我执行四次,哈哈,我也达到了100%的覆盖,我说的还是正确的!
继续,某天雷电辟中了代码,代码立刻膨胀了,现在变成:
public int getAccount(int selet){ switch{ case 1: if (xxx) then{ return 0; }else{ return 1; } breake; case 2: if (xxx) then{ return 0; }else{ return 2; } breake; case 3: if (xxx) then{ return 0; }else{ return 3; } breake; ......
case 9999999:(假如java允许,哈哈) if (xxx) then{ return 0; }else{ return 999999; } breake; default: return 0; breake; } }
可能要做到100%地球都爆炸了,这就是为什么愿望是好的,实现是困难的根源! |
原文转自:http://www.ltesting.net