决策表

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使用系列二的更多相关文章

  1. 前端构建大法 Gulp 系列 (二):为什么选择gulp

    系列目录 前端构建大法 Gulp 系列 (一):为什么需要前端构建 前端构建大法 Gulp 系列 (二):为什么选择gulp 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gul ...

  2. WPF入门教程系列二十三——DataGrid示例(三)

    DataGrid的选择模式 默认情况下,DataGrid 的选择模式为“全行选择”,并且可以同时选择多行(如下图所示),我们可以通过SelectionMode 和SelectionUnit 属性来修改 ...

  3. Web 开发人员和设计师必读文章推荐【系列二十九】

    <Web 前端开发精华文章推荐>2014年第8期(总第29期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...

  4. Web 前端开发人员和设计师必读文章推荐【系列二十八】

    <Web 前端开发精华文章推荐>2014年第7期(总第28期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...

  5. Web 开发精华文章集锦(jQuery、HTML5、CSS3)【系列二十七】

    <Web 前端开发精华文章推荐>2014年第6期(总第27期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...

  6. Web 前端开发人员和设计师必读精华文章【系列二十六】

    <Web 前端开发精华文章推荐>2014年第5期(总第26期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...

  7. Web 前端开发精华文章推荐(HTML5、CSS3、jQuery)【系列二十三】

    <Web 前端开发精华文章推荐>2014年第2期(总第23期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...

  8. Web 前端开发精华文章推荐(HTML5、CSS3、jQuery)【系列二十二】

    <Web 前端开发精华文章推荐>2014年第一期(总第二十二期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML ...

  9. 【圣诞特献】Web 前端开发精华文章推荐【系列二十一】

    <Web 前端开发精华文章推荐>2013年第九期(总第二十一期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HTML5 和  ...

随机推荐

  1. 修改Android 4.2.2的原生Camera引出的java.lang.UnsatisfiedLinkError: Native method not found,及解决方法

    修改Android 4.2.2的原生Camera应用,做一些定制,将Camera的包名从之前的 package com.android.* 修改成了com.zhao3546.*. 调整后,应用可以正常 ...

  2. 一道c++小编程题,

    题目: 编写一个小程序,从标准输入读入一系列string对象,寻找连续重复出现的单词,程序应该找出满足以下条件的单词的输入位置:该单词的后面紧跟着再次出现自己本身,跟 踪重复次数量多的单词及其重复次数 ...

  3. dos批量替换当前目录后缀名

    有时候有些后缀名不满足条件,就需要进行批量的替换,如果人为的去替换,那么如果量少的话还好说,量多的话一个个去替换就太傻了,今天从网络上面查找了一些批量替换的dos命令,用起来还挺好用的,就直接把代码贴 ...

  4. Decoding BASE64 in ABAP

    Code Gallery Decoding BASE64 in ABAP Skip to end of metadata Created by Frank Klausner, last modifie ...

  5. Python 链接MysqlDB

    下载安装MySQLdb <1>linux版本 http://sourceforge.net/projects/mysql-python/ 下载,在安装是要先安装setuptools,然后在 ...

  6. Irvine的专业汇编网站

    http://asmirvine.com/ http://download.csdn.net/download/stupid_boy2007/3890853 http://download.csdn. ...

  7. Windows Azure使用体验

    Windows Azure在今年6月6日由世纪互联代理在中国运营,目前只能体验,没有开放注册.不过,体验的门槛比较高,只对企业开放,未来大量对外开放使用貌似时间还早.大家都懂得,“国内门槛高”.本人在 ...

  8. REPLACE...IN.....WITH.... 的使用

    REPLACE...IN.....WITH....   的使用,例子用于改变alv的gt_fieldcat_alv LOOP AT gt_fieldcat_alv ASSIGNING <fs_f ...

  9. 其他主机连接本地主机Tomcat会出现的防火墙问题

    当我在A机上开启Tomcat后,B机上打开浏览器不能访问到Tomcat的服务器,这是由于Windows防火墙的原因 可以由以下两种做法: 关闭Windows防火墙: 如果不想关闭Windows防火墙, ...

  10. CImageList使用简要说明

    CImageList ImageList;//创建一个包含3个24位色32x32图片的ImageList,ILC_MASK的意思是同时创建一个mask,这样在下面指定了背景颜色以后ImageList就 ...