首页 > 代码库 > Fitnesse系列三
Fitnesse系列三
动态决策表
动态决策表是新出的,去年初的版本里还没有这个。看了一下文档和示例,大意是作为普通决策表的一个辅助手段。是为不容易匹配方法名称而推出的。但如果只有一两个参数,再怎么着也不至于找不到名称。所以我认为动态表主要是为了给那些有大量输入参数的情况设计的。像UserGuide示例中的表格,有6个输入,如果按普通决策表的话至少要写6个setXxx方法。如果更多,代码也就更繁琐了。
在set方法中我做了如下判断,只有当列名为“b”的时候才做赋值——这也就意味着a、c列其实完全不起作用;get方法也做了一下判断,以区分return列、exception列的输出内容。执行即可看到结果。
动态决策表是新出的,去年初的版本里还没有这个。看了一下文档和示例,大意是作为普通决策表的一个辅助手段。是为不容易匹配方法名称而推出的。但如果只有一两个参数,再怎么着也不至于找不到名称。所以我认为动态表主要是为了给那些有大量输入参数的情况设计的。像UserGuide示例中的表格,有6个输入,如果按普通决策表的话至少要写6个setXxx方法。如果更多,代码也就更繁琐了。
动态决策表把所有输入都放到一个set方法里(同普通决策表一样,凡不是以?结尾的都认为是输入);所有输出(以?结尾的)放到一个get方法里,举个例子:
ddt:ddt.zjc.com.DynamicTable | ||||
a | b | c | return? | exception? |
1 | 3 | 9 | false | No Exception |
0 | 1 | 8 | false | No Exception |
2 | 6 | 1 | false | No 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系列三
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。