脚本表
如果说前面介绍的几种表格都是单步骤、单方法。Script table就是一系列的多步骤操作了,正如名称所代表的含义。
表头的第一个格加script:前缀,也可以只是一个script,后面紧跟的单元格作为类名。后面跟构造参数。下面的行每行代表一个操作。允许的操作类型有:执行方法、检查结果、显示输出。
执行方法包括方法名称和参数。相当奇葩的设计是方法名称可以和参数交错放入表格中。如我下面的示例中this is a method in code是分别从1、3、5列中组合起来的,而2、4、6列是参数。还是用另外一种写法更符合正常习惯些——第一列放方法名(紧跟一个;),后面依次放参数。
检查结果用四个词组作为第一列的内容:check、check not、ensure、reject,分别表示比对返回结果与表格内容相同、与表格内容不同、返回的是true、返回的是false
显示输出用show单词,在第一列,后面是方法名和参数。这一行只显示输出不做验证。所以结果表格中会多出一列。
示例:
script:script.zjc.com.ScriptDemo | zjc | 20 | |||
this is | 10 | a method | 20 | in code | 30 |
check | get age | 80 | |||
this is a method in code; | 15 | 25 | 35 | ||
check not | get age | 200 | |||
show | get name | 5 | |||
reject | reject method | 5 |
fixture:
package script.zjc.com;
public class ScriptDemo {
private String name;
private int age;
public ScriptDemo(String name,int age){
this.name=name;
this.age=age;
}
public void thisIsAMethodInCode(int a,int b,int c){
age=age+a+b+c;
}
public int getAge(){
return age;
}
public String getName(int a){
return name;
}
public boolean rejectMethod(int a){
return false;
}
}
在我看来,script table和decision table是最重要的两种表格,decision table可以实现大部分的数据验证,而script table可以搭配其他工具一起使用,实现很多奇妙的、超出预期的功能。