zoukankan      html  css  js  c++  java
  • Fitnesse使用系列二

    决策表

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

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

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

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

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

    !pathD:softwareeclipseworkspacesMyDemoin 或

    !pathD:softwareeclipseworkspacesMyDemolibs*.jar(假设不指定.jar。那就去找.class文件)

    在去年的版本号里还须要把fitnesse自身的jar包加上:!pathD:softwarefitnesse-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做比較,一致,这行就是绿色的,不一致就是红色的;然后再做第二行......,这样就完毕了两个測试用例的运行。

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

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

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

  • 相关阅读:
    【CF932E】Team Work
    【ZJOI2011】看电影
    【CQOI2011】放棋子
    【HAOI2010】计数
    【HNOI2009】有趣的数列
    【ZJOI2010】排列计数
    【FJOI2016】建筑师
    【USACO10 OPEN】三角形计数
    【HNOI2012】排队
    【HNOI2008】越狱
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5152187.html
Copyright © 2011-2022 走看看