DoFixture的表格格式:DoFixture表的第一行是夹具类名。其后所有的行都被用于执行验证或通过执行夹具类的方法来履行动作。方法名由每行的奇数单元格的参数名连接而成,而参数值从每行的偶数单元格取得。如果方法返回一个布尔值,则这行被认为是测试,并且如果返回值为“FALSE”,则这个测试报错。如果这个方法是void或返回除布尔值外的其它值,除非抛出异常,否则对这个测试的输出值没有任何影响。
!|DoFixtureTest|
|fill|10|times with|x|
|char at|4|is|x|
|set list|A,B,C,D|
|char at|2|is|C|
下面就是要写Fixture 类了,其实看一个表格是什么类型,光看表格是不好确认的,但是从Fixture的代码中就可以轻松的看出表格类型来。Fixture 类扩展了fitlibrary.DoFixture类,可以说明该表格就是DoFixture表格类型;其他类型的表格也都可以这样分辨。如下是上面DoFixture表格的Fixture 类代码:
package info.fitnesse.fixturegallery;
import java.util.Arrays;
import fitlibrary.DoFixture;
public class DoFixtureTest extends DoFixture {
public String letters;
public void fillTimesWith(int count, char c) {
char[] arr = new char[count];
Arrays.fill(arr, c);
letters = new String(arr);
}
public boolean charAtIs(int position, char c) {
return letters.charAt(position) == c;
}
public void setList(char[] array) {
letters = new String(array);
}
public char charAt(int position) {
return letters.charAt(position);
}
}
2.2.4 Fit/Slim系统
FitNesse测试框架中,主要核心部分由其Fit集成测试系统与Slim测试系统负责实现,Fit/Slim是FitNesse框架提供的两个独立的测试系统,在具体的测试中,可以根据不同的测试任务进行选择。Fit方法会从Fitnesse得到传来的Html文件,解析后和Fixture关联来执行Case,而Slim直接从Fitnesse中得到Html中的内容,如果不需要在被测系统中运行整个HTML处理、比较和着色的话,Slim就可以在Fitnesse上处理这些行为。
测试人员设计一个测试表格时,在表格的编辑页面使用下面命令来定义所使用的测试系统:
!define TEST_SYSTEM {Slim}
其中!define是FitNesse中的变量定义关键字,TEST_SYSTEM是一个系统变量名,{Slim}表示该系统变量的值。若不指定该变量,FitNesse默认使用Fit测试系统。
1、Fit系统 Fit (Framework for Integrated Testing) [41]集成测试框架本质上是FitNesse的一种测试引擎。在Fit测试系统中,提供了多种格式的Fit表格,并通过对应的Fixture来驱动表格测试用例的执行。其常用的测试表格类型如表2.7所示。
表2.7 Fit系统Table类型[44]
表格类型 描述
ColumnFixture 该表格的每个行元素均用于存放输入和预期的输出数据。
RowFixture 该表格适用于需要返回一个结果集的查询类测试用例,提供独立的排序功能。
ActionFixture 该格式的Fixture支持测试人员编写自定义脚本来模拟一系列事件过程,例如控制界面操作的事件脚本
CommentTables 这种形式的测试表格不被解释为测试用例,属于注释性表格数据
测试人员使用Fit提供的测试表格来编写相应的测试用例,启动测试后,FitNesse自动根据测试用例使用的Table类型指定相应的Fixture来驱动测试的执行,其驱动过程如下图2.15所示: 基于FitNium的Web关键字驱动的测试(10):http://www.751com.cn/jisuanji/lunwen_8907.html