您的位置:首页 > 其它

Fitnesse使用系列三

2014-09-20 07:17 141 查看
动态决策表

动态决策表是新出的,去年初的版本里还没有这个。看了一下文档和示例,大意是作为普通决策表的一个辅助手段。是为不容易匹配方法名称而推出的。但如果只有一两个参数,再怎么着也不至于找不到名称。所以我认为动态表主要是为了给那些有大量输入参数的情况设计的。像UserGuide示例中的表格,有6个输入,如果按普通决策表的话至少要写6个setXxx方法。如果更多,代码也就更繁琐了。

动态决策表把所有输入都放到一个set方法里(同普通决策表一样,凡不是以?结尾的都认为是输入);所有输出(以?结尾的)放到一个get方法里,举个例子:
ddt:ddt.zjc.com.DynamicTable
abcreturn?exception?
139falseNo Exception
018falseNo Exception
2
61falseNo Exception
ddt:是必须的,动态决策表的标志,对应代码中:set方法就规定成了固定格式——两个参数,第一个参数是String类型,表示列名称,第二个参数是值get方法也是固定格式——一个参数:列名称输入方法统一成一个,输出方法也统一成一个,那么如果需要区分,只能我们自己在代码里做判断了。如以下示例:
package ddt.zjc.com;

public class DynamicTable {
private int num;
public void set(String name,int a){
if(name.equals("b")){
this.num=a;
}
}

public String get(String s){
if(s.equals("exception")){
return "No Exception";
}else {
if (num==1)
return "true";
else
return "false";
}

}
}
在set方法中我做了如下判断,只有当列名为“b”的时候才做赋值——这也就意味着a、c列其实完全不起作用;get方法也做了一下判断,以区分return列、exception列的输出内容。执行即可看到结果。

不怕麻烦的话,动态决策表总是可以找到一个普通决策表的写法的,所以算是普通决策表的一种特例。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  测试 fitnesse