首页 > 代码库 > Fitnesse系列三

Fitnesse系列三

动态决策表

动态决策表是新出的,去年初的版本里还没有这个。看了一下文档和示例,大意是作为普通决策表的一个辅助手段。是为不容易匹配方法名称而推出的。但如果只有一两个参数,再怎么着也不至于找不到名称。所以我认为动态表主要是为了给那些有大量输入参数的情况设计的。像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系列三