Fastpoint
级别: 总版主
精华:
44
发帖: 5033
基地声望: 390 点
基地币: 1683 Bug
基地贡献: 0 点
好评度: 15 点
在线时间:818(小时)
注册时间:2005-10-08
最后登录:2008-07-22
|
[FAQ] 为什么测试全覆盖很难?
其实有的时候随便想想,肯定全覆盖不可能了,不过总是很懒至今没有做个实际的演示例子,今天不能偷懒了。
正面观点:100%的覆盖是可以的,为什么呢?看下面的代码:
我们有这样的一个方法:
public int getAccount(){ 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%地球都爆炸了,这就是为什么愿望是好的,实现是困难的根源!
|
可不可不要这么样徘徊在目光内 你会察觉到我根本寂寞难耐 即使千多百个深夜曾在梦境内 我有吻过你这毕竟并没存在
人声车声开始消和逝 无声挣扎有个情感奴隶 是我多么的想她 但我偏偏只得无尽叹谓
其实每次见你我也着迷 无奈你我各有角色范围 就算在寂寞梦内超出好友关系 唯在暗里爱你暗里着迷 无谓要你惹上各种问题 共我道别吧别让空虚使我越轨
|
|
[楼 主]
|
Posted: 2005-10-14 23:31 |
| |