FIT是fitnesse使用的默认的引擎(SLIM的使用在上一篇文章中说明),不需要特别声明即可使用执行表格测试,所有编写的fixture都需要继承Fit的Fitxture

编写测试用例前需要先声明class或者jar包所在的路径,才能找到所需要的fixture

使用关键字path

1. Column Fixture

这是使用最多的,每一行代表输入或者期望输出,添加?的代表调用的输出方法,如果期望值和实际输出值一致,则显示绿色,否则显示红色,并且显示实际输出值。如果添加的是()表示返回值,值的颜色是灰色;addRemovePayerFixture在包fixture下,调用的时候需要加上包路径

源码:

public class AddRemovePlayerFixture extends ColumnFixture {

private String playerName;

private Game theGame;

public void setPlayerName(final String playerName) {

this.playerName = playerName;

}

public boolean addPlayer() {

this.theGame = StaticGame.theGame;

Player thePlayer = this.theGame.addPlayer(this.playerName);

return this.theGame.playerIsPlaying(thePlayer);

}

public int countPlayers() {

return this.theGame.getNumberOfPlayers();

}

}

输入的playerName会调用set方法载入输入值

2. Row Fixture

用于查询数据的fixture,只要输入了查询的条件就可以获得返回,也可以校验输出的返回值,这种表格适用于查询数据

源码

public class EmployeePayRecordsRowFixture extends RowFixture {

public Object[] query() throws Exception {

EmployeePayRecord[] records = new EmployeePayRecord[2];

records[0] = new EmployeePayRecord(1, 1000, "Bob");

records[1] = new EmployeePayRecord(2, 2000, "Jack");

return records;

}

public Class getTargetClass() {

return EmployeePayRecord.class;

}

}

public class EmployeePayRecord {

public int id;

private double salary;

public String name;

public EmployeePayRecord(final int id, final double salary, final String name) {

this.id = id;

this.salary = salary;

this.name = name;

}

public double pay() {

return this.salary;

}

}

fixture先通过getTargetClass()加载查询的数据对象,然后通过query获得查询结果,整个fixture的作用就是组装数据,

查询的时候从左往右匹配条件,如果前面的列值没有找到对应的数据,则会标记为fail,查询结果中,没有期望的值,则会标记为miss,期望值不在查询结果中,则会标记为surplus

3. Action Fixture

当想要操作一系列的方法的时候,可以使用该fixture

操作的类型主要有三种enter,press,check

enter: 一般适用于set方法,把期望的值传递给fixture

press:执行方法,参数可选

check:需要输入期望值

源码:

public class CountFixture extends Fixture {

private int counter = 0;

public void count() {

this.counter++;

}

public int counter() {

return this.counter;

}

public void setCounter(final int num) {

this.counter = num;

}

}

4.Table Fixture

当fit提供的fixture不能满足需要的时候,可以使用table fixture,该fixture可以自由处理表格单元格的

(0,0)表示左上角第一个单元格

(row,column)都是从0开始

Table fixture的方法

protected abstract void doStaticTable(int rows)

Table   Fixture is an abstract class that   you must derive from. You must override doStaticTable to perform the   functions of the fixture. The number of rows in the table is passed in rows.

protected Parse getCell(int row, int column)

Returns the addressed table   cell as a Parse.

protected String getText(int row, int column)

Returns the text within the   addressed table cell.

protected boolean blank(int row, int column)

Returns true if the   addressed table cell is blank.

protected void wrong(int row, int column)

Turns the addressed table   cell red.

protected void right(int row, int column)

Turns the addressed table   cell green.

protected void wrong(int row, int column, String actual)

Turns the addressed table   cell red, and annotates it with the actuall value.

protected void ignore(int row, int column)

Turns the addressed cell   gray.

protected int getInt(int row, int column)

Converts the addressed cell   to an int, and returns it.

官网上的例子:http://www.fitnesse.org/FitNesse.UserGuide.WritingAcceptanceTests.FitFramework.TableFixture

Fitnesse FIT的使用的更多相关文章

  1. fitnesse 中各类fit fixture的python实现

    虽然网上都说slim效率很高,无奈找不到支持python的方法,继续用pyfit 1 Column Fixture 特点:行表格展现形式,一条测试用例对应一行数据 Wiki !define COMMA ...

  2. working with fitnesse wiki pages

    fitnesse提供一个简单易用的wiki创建一个web页面用于测试.测试页面有一个button,允许所有的测试在这个页面运行,因此任何人在任何时间都可以去这个页面点击这个按钮,查看测试是否通过.fi ...

  3. 扩展Fitnesse的ScriptTable:支持if-then

    Fitnesse的ScriptTable只能顺序执行所有行,本博文介绍如何让ScriptTable支持if-then,来条件执行一行. 首先普及一下概念,什么是Fitnesse,听一听.NET版Cuc ...

  4. Fitnesse+RestFixture:Web服务回归测试利器

    RestFixture是Fitness的一个测试REST服务的插件,用于调用标准的http GET/POST等请求方法,并可以用XPath语法和Javascript语法检验http响应.本文介绍安装运 ...

  5. 介绍并扩展Fitnesse的测试模块化机制:ScenarioTable

    摘要:在验收测试框架Fitneese中,使用Scenario可以把最常用的测试步骤封装起来,从而达到模块化定义Fitnesse测试用例的能力.但Scenario仅限于封装Script测试步骤,Scri ...

  6. 利用fitnesse实现api接口自动化测试

    上午在园子里乱逛,看了不少小伙伴们分享的接口测试方面的知识,仔细想想,我做接口测试也有几个年头了,大家所叙述到的一些经验或多或少,我也曾遇到过,突然意识到知识的点滴积累是多么的重要,我记得我最早接触接 ...

  7. Fitnesse使用系列二

    决策表 Fitnesse中提供了好几种表格样式,前面说了.表格是运行測试的关键.从字面看.表格描写叙述的是測试用例.从运行角度看,表格为后端的代码(fitnesse里称作fixture)提供了包名.类 ...

  8. fitnesse - 框架介绍

    fitnesse - 框架介绍 2017-09-29 目录: 1 fitnesse是什么?2 框架介绍3 与junit.testng比较,fitnesse教其他框架有什么优势 1 fitnesse是什 ...

  9. [原创]Fitnesse测试工具介绍及安装

    1 Fitnesse简介 Fitnesse是一款开源的验收测试框架,完全有java语言编写完成,支持多语言软件产品的测试,包括(java,c,c++,python,php),在Fitnesse框架中, ...

随机推荐

  1. EF6 自定义迁移表名

    在下列代码片段中已经EF6迁移表的表名更改为 MigrationHistory注意:下代码片段建议和DbContext同程序集 public class ModelConfiguration : Db ...

  2. Ionic学习记录(一):ionic及cordova安装、创建第一个应用、项目结构

    目录: 一.ionic的安装 二.创建第一个应用程序 三.浏览器中预览应用 四.项目结构 五.添加页面 一.ionic的安装 使用Ionic创建和开发应用程序主要通过Ionic命令行实用程序(“CLI ...

  3. Python 2:str.title()(使字符串每个单词首字母大写)

    name = "hello,world! hello,python!" print(name.title()) #单词首字母大写 运行结果将会是:Hello,World!Hello ...

  4. AES && DES加解密

    MD5加密一般不可逆,只能暴力突破.所以这边记录一下一些关于字符串的加解密的两种方法,以便自己学习 AES public class AESHelper { public static string ...

  5. Redis 链表结构 和 常用命令

    Redis 数据结构 --链表(linked-list) 命令 说明 备注 lpush key node1 [node2 ...] 把节点 node1 加入到 链表最左边 如果是 node1.node ...

  6. 5.13redis的相关基础

    二.Redis(NoSql)  Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供测试数据,50个并发执行 100000个请求,读的速度是110000次/s,写的速 ...

  7. objectdatasouce的温故

    在做ecxel的时候,需要前台做一个联动的效果. 记录一下这个数据源的用法,大学时候用的,忘得差不多了 首先就是往页面拖拽一个objectdatasouce的控件 然后配置数据源: 选择业务对象(其实 ...

  8. 关于OpenCV的Mat画图问题

    由于OpenCV的java版本画图有太多错误,只能自己编写画图的代码,在一个函数中,编写出画圆和深度距离的代码, 代码如下: public int CircleMyMat(Mat Show, Poin ...

  9. (转)PJAX的实现与应用

    一.前言 web发展经历了一个漫长的周期,最开始很多人认为Javascript这们语言是前端开发的累赘,是个鸡肋,那个时候人们还享受着从一个a链接蹦到另一个页面的web神奇魔术.后来随着JavaScr ...

  10. C# 去掉代码前边空格(格式化代码)

    private void button1_Click(object sender, EventArgs e) { textBox2.Text = ""; string str = ...