Fitnesse FIT的使用

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

时间: 2024-11-06 17:19:06

Fitnesse FIT的使用的相关文章

fitnesse 中各类fit fixture的python实现

虽然网上都说slim效率很高,无奈找不到支持python的方法,继续用pyfit 1 Column Fixture 特点:行表格展现形式,一条测试用例对应一行数据 Wiki !define COMMAND_PATTERN {python "%m" %p} !define TEST_RUNNER {C:\Python27\PyFIT-0.8a2\fit\FitServer.py} !path E:\selfworkspaces\fitTest !|ColumnFixtureTest.Ad

Fitnesse使用系列二

决策表 Fitnesse中提供了好几种表格样式,前面说了.表格是运行測试的关键.从字面看.表格描写叙述的是測试用例.从运行角度看,表格为后端的代码(fitnesse里称作fixture)提供了包名.类名.方法名和參数(仅以java为例). 先说測试系统.fitnesse提供了两种測试系统:fit和slim.採用不同的測试系统,表格样式不同,代码也不同.所以首先就要确定用哪种.Fit是默认的.是从Framework for Integrated Test工具延续过来的. 假设不考虑旧代码延用的问题

working with fitnesse wiki pages

fitnesse提供一个简单易用的wiki创建一个web页面用于测试.测试页面有一个button,允许所有的测试在这个页面运行,因此任何人在任何时间都可以去这个页面点击这个按钮,查看测试是否通过.fitnesse提供自动运行测试的方式,因此它可以简单的添加用例到自动化脚本构建中. 测试页面看起来应该是什么样子?一个测试页面应该是 页面名称>两个或两个以上串级单词组成结构的wiki单词,每个单词以大写字母开始. 尽管fitnesse是写验收测试的工具,但是你可能想去学习一些使用wiki的技巧: 编

Fitnesse + Xebium环境搭建

1.在搭建Fitnesse + Xebium环境之前先将selenium基础环境搭建完成并调试成功 参照:http://www.cnblogs.com/moonpool/p/5480724.html 2.把Xebium集成到Fitnesse中 a. 搭建Fitnesse环境 参照:http://www.cnblogs.com/moonpool/p/5765307.html b.下载Xebium 下载地址:http://xebia.github.io/Xebium/ c. 导入eclipse,如下

fitnesse(gradle构建)安装步骤

1.安装jdk.ant.gradle(参考http://www.cnblogs.com/274914765qq/p/4401525.html) 2.下载Fitnesse https://github.com/unclebob/fitnesse/ 3.下载完成后,解压,并双击gradlew.bat,然后等待完成(时间较长). 4.完成后,通过命令行进入fitnesse-master并使用下面的命令运行(会下载很多包,时间较长): .\gradlew run 5.eclipse 安装gradle插件

扩展Fitnesse的ScriptTable:支持if-then

Fitnesse的ScriptTable只能顺序执行所有行,本博文介绍如何让ScriptTable支持if-then,来条件执行一行. 首先普及一下概念,什么是Fitnesse,听一听.NET版Cucumber的创始人Aslak Hellesøy谈Fitnesse与Cucumber对比: FIT/Fitnesse和Cucumber都执行高级语言编写的验收测试.FIT仅识别HTML,Fitnesse则通过提供Wiki语法来简化编写测试的过程.在FIT/Fitnesse当中,所有的测试都以表格的形式

Fitnesse Slim的使用

官网上的使用说明:http://www.fitnesse.org/FitNesse.UserGuide.WritingAcceptanceTests.Slim Fitnesse默认使用fit,如果要使用slim需要先声明 !define TEST_SYSTEM {slim} 1.Decision Table 表格 源码 package fitnesse.slim.test; public class ShouldIBuyMilk { private int dollars; private in

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

上午在园子里乱逛,看了不少小伙伴们分享的接口测试方面的知识,仔细想想,我做接口测试也有几个年头了,大家所叙述到的一些经验或多或少,我也曾遇到过,突然意识到知识的点滴积累是多么的重要,我记得我最早接触接口测试的时候,就是只在浏览器里人工测试单个接口的返回结果,后来用python的unittest自己写测试框架,和现在大多数小伙伴们的方法差不多,测试用例也是存放在excle表中,这对于单人测试来说都还ok,但是如果是多人协同测试时,问题就出来了,因为按目录存放在不同的excle表中的测试用例,维护起

Fitnesse系列一

一.简介 按标准说法Fitnesse是一个验收测试框架,先不用理会这些貌似"高大上"的名词.看看它是如何介绍自己的.在手册文档的首页,定义了四种说明:1.是一个软件开发合作工具:2.是一个软件测试工具:3.是一个wiki:4.是一个webserver. 先从最有操作性的特征开始理解:一个webserver,也就是说肯定是以web方式访问的,就当是个网站好了:一个wiki,这就更具体些了.Wiki是一种百科全书式的站点,通常旨在介绍各种知识.那么fitnesse也类似,可以浏览它以获取我