码迷,mamicode.com
首页 > 其他好文 > 详细

Fitnesse使用系列二

时间:2016-01-22 21:53:35      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

决策表

Fitnesse中提供了好几种表格样式,前面说了。表格是运行測试的关键。从字面看。表格描写叙述的是測试用例。从运行角度看,表格为后端的代码(fitnesse里称作fixture)提供了包名、类名、方法名和參数(仅以java为例)。

先说測试系统。fitnesse提供了两种測试系统:fit和slim。採用不同的測试系统,表格样式不同,代码也不同。所以首先就要确定用哪种。Fit是默认的。是从Framework for Integrated Test工具延续过来的。

假设不考虑旧代码延用的问题,建议还是用slim。由于slim在性能上要更好。并且代码编写更简单。

使用slim须要在页面加一行说明:!define TEST_SYSTEM {slim} 。通常放在页顶端

以下就该描写叙述运行代码所依赖的类或jar包了。格式一般这样写:

!pathD:\software\eclipse\workspaces\MyDemo\bin\ 或

!pathD:\software\eclipse\workspaces\MyDemo\libs\*.jar(假设不指定.jar。那就去找.class文件)

在去年的版本号里还须要把fitnesse自身的jar包加上:!pathD:\software\fitnesse-standalone.jar ,可是今年的版本号里。我发现已经不须要这句了。

决策表这个样式的:

my demo

inputa

inputb

exp?

1

2

3

8

9

17


这个my demo就是代码的类名了。大家知道在大多数编程语言里是不同意含有空格的标识符的。那么在代码里用my demo肯定是不行的。

Fitnesse事实上是这样做的——把每一个单词首字母大写,然后连起来。所以相应于代码里的类名是MyDemo。这样一来,事实上这里写成My Demo、My demo、MyDemo效果都是一样的。但写成mydemo就不行了。这仅仅能被转换成Mydemo,我想我说明确了吧。对于类的全名(含包名)。那就仅仅能老老实实按正常写法了,比方:com.calis.zjc.MyDemo,不能有空格,否则再自己主动转成首字母大写就不正确了。

下一行就是方法名了。

Fitnesse是这样做的——凡不是以?结尾的,都觉得是输入方法,无返回值,方法名是set+首字母大写字符串。也就是说。上面表格相应的方法名各自是:void setInputa(...)  、void setInputb(...);而以?结尾的列,则觉得是验证方法,无參数有返回值。相应方法名是int exp()。何以见得返回值类型就是int呢,事实上是不限定的。不论返回什么类型都能够和页面上的字符做比較。这点比較智能(我没有看到源码,但我预计是拿到返回值再统统.toString(),之后和页面上的字符串做equals的)

综上所述:上面表格相应的代码为:

public class MyDemo {
	private int a,b;
	public void setInputa(int a){
		this.a=a;
	}
	public void setInputb(int b){
		this.b=b;
	}
	public int exp(){
		return a+b;
	}
}

当我们把此页面属性设置为test时,点击那个testbutton,系统就会去查找并载入这个类,然后运行对应的方法,也即:第一步setInputa(int a),a为1。第二步setInputb(int b),b为2;第三步exp取得返回值3和表格中的3做比較,一致,这行就是绿色的,不一致就是红色的;然后再做第二行......,这样就完毕了两个測试用例的运行。

(假设表格里填的不是整数,那么运行赋值方法会抛异常,这点也要注意)

再说一句,运行页面并不是仅仅能写表格。全然能够写其它文字。不影响运行结果。所以我们全然能够写一段需求说明,跟着一个表格做验证;再写一段使用说明,再跟写一个表格。描写叙述一个缺陷,再跟一个表格......这样,这个页面就成了既是文档,又是可运行用例了。

总之,让“文字”得以验证。是这个工具的亮点。

Fitnesse使用系列二

标签:

原文地址:http://www.cnblogs.com/bhlsheji/p/5152187.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!