决策表

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. winform 防止主界面卡死

    总结网络上的解决方案:新线程=> 委托=> 主界面的异步更新方法(IAsyncResult BeginInvoke(Delegate method)),一句话就是通过委托调用另一个线程的异 ...

  2. boost中asio网络库多线程并发处理实现,以及asio在多线程模型中线程的调度情况和线程安全。

    1.实现多线程方法: 其实就是多个线程同时调用io_service::run for (int i = 0; i != m_nThreads; ++i)        {            boo ...

  3. Android中Parcelable序列化总结

    在使用Parcelable对android中数据的序列化操作还是比较有用的,有人做过通过对比Serializable和Parcelable在android中序列化操作对象的速度比对,大概Parcela ...

  4. Spring通过工厂创建实例的注意事项

    假设第三方(or别的team)提供一个工厂类(此类是不能够改动的.往往以jar包形式提供的),须要供给我们项目来使用. 可是我们自己的项目使用了spring来配置,所以我们当然希望可以通过spring ...

  5. 使用MVC模式开发一简单的销售额查询系统

    与上一篇比较,只改变了index.jsp文件中form的提交路径 <form action="ShowServlet" method="post"> ...

  6. Java+7入门经典 - 6 扩展类与继承 Part 1/2

    第6章 扩展类与继承 面向对象编程的一个重要特性: 允许基于已定义的类创建新的类; 6.1 使用已有的类 派生 derivation, 派生类 derived class, 直接子类 direct s ...

  7. Eclipse完美汉化教程

    首先我们打开http://www.eclipse.org/babel/downloads.php下载语言包. 方法一:可以复制图片里的地址通过Eclipse下载,Help→Install New So ...

  8. Swift - 给表格TableView添加页眉和页脚

    UITableView具有var tableHeaderView:UIView?属性和var tableFooterView:UIView?属性,可以通过给其赋值来创建列表TableView的页眉和页 ...

  9. Js三级联动菜单

    效果演示: <SCRIPT LANGUAGE="JavaScript"> <!-- function CreateSelect(_FormName,_SName, ...

  10. 被忽视的META标签之特效

    在web设计中使用js可以实现很多的页面特效,然而很多人却忽视了HTML标签中META标签的强大功效,其实meta标签也可以实现很多漂亮的页面过渡效果. META标签是HTML语言HEAD区的一个辅助 ...