dq_0413 发表于 2009-7-14 22:24:50

对白盒测试有些迷惑

白盒测试给我整的有点黑盒的感觉
不伦不类........
哎,严重偏离思想.!!!
假期过后回来反思反思.
TDD的核心思想不就是测试先行吗?
最近整的单元测试是算法测试
我是先调用程序最终输出的结果字符串拆分成所需要的各个部分
然后根据业务需求来编写Junit脚本进行验证。
public String getMapStr() {
// 地图组成字符串
String mapStr = "";
// 存放随机数字
int x = -1;
// 循环3*3,随机产生9个元素
for (int i = 0; i < 9; i++) {
   // 产生元素编号1-12
   x = random.nextInt(7);
   // 存放到数组中
   map = x;
   // 组合结果字符串
   mapStr += x + "#";
}
// 返回结果字符串
return mapStr;
}
Junit测试代码
public void testGetMapStr(){

String [] savemap=new String;
//将输出的地图结果拆分出来
savemap=new ProductGeneralMapImpl().getMapStr().split("#");
//将程序输出结果拆分成数组,验证业务需求
for(int i=0;i<9;i++){
   //验证随机数是否0-6之间。
   if(Integer.parseInt(savemap)<0 || Integer.parseInt(savemap)>6)
    fail("随机数范围错误!应在0-6之间");
}

//验证地图元素总数是否为9个。
if(savemap.length!=9)
   fail("根据业务需求,应产生随机数个数9个");
}

kuangquanshui 发表于 2009-8-15 16:35:51

有点迷糊了

lanbiers 发表于 2009-8-18 11:12:01

可以这么简单的理解下

一个程序段由输入输出和代码实现逻辑构成

白盒针对的是代码实现逻辑做类似路径覆盖之类的测试,需要关心具体代码实现

黑盒针对的是程序段的输入输出,不需要关心具体的代码实现

zlfoxy 发表于 2009-8-28 14:56:51

回复 1# 的帖子

我觉得你的getMapStr() 可以是static的
这样 你都不必new一个 ProductGeneralMapImpl了。
还有测试代码里
是不是也应该加入是否能把这个字符串拆成9个字符串的判断?
页: [1]
查看完整版本: 对白盒测试有些迷惑