Fitnesse Slim使用 - ScriptTable

Fitnesse Slim使用 - ScriptTable

2017-09-28

script login dialog driver Bob xyzzy
login with username Bob and password xyzzy
check login message Bob logged in.
reject login with username Bob and password bad password
check login message Bob not logged in.
check not login message Bob logged in.
ensure login with username Bob and password xyzzy
note this is a comment
show number of login attempts
$symbol= login message

源代码:

public class LoginDialogDriver {
  private String userName;
  private String password;
  private String message;
  private int loginAttempts;

  public LoginDialogDriver(String userName, String password) {
    this.userName = userName;
    this.password = password;
  }

  public boolean loginWithUsernameAndPassword(String userName, String password) {
    loginAttempts++;
    boolean result = this.userName.equals(userName) && this.password.equals(password);
    if (result)
      message = String.format("%s logged in.", this.userName);
    else
      message = String.format("%s not logged in.", this.userName);
    return result;
  }

  public String loginMessage() {
    return message;
  }

  public int numberOfLoginAttempts() {
    return loginAttempts;
  }
} 

说明:

很明显,这个表中每一行都是一条指令。

Script:login dialog driver Bob xyzzy

第一行Script后面跟的是类名LoginDialogDriver和构造函数的参数Bob,xyzzy,这一行称之为actor,如果table中没有actor,就沿用上一个table的actor。

Script table 调用方法可以插入式调用,即方法和参数是相间的,如下所示:

login with username Bob and password xyzzy

也可以连续调用,可以在单元格方法名后面添加分号,然后紧接的单元格都是入参,如下所示:

login with username and password; Bob xyzzy
  • 一行中如果只包含一个方法名,那么只有它返回的是布尔值,才会执行的时候变成绿色或者红色,其他情况不会有颜色
  • 如果一个变量在第一个单元格,则它后面应该跟的是方法名,该变量的值就是方法返回的值
  • 如果第一个单元格是check,则它后面应该跟的是方法名,最后一个单元格就是期望值
  • 如果第一个单元格是not check,则它后面跟的是方法名,最后一个单元格就是不希望的期望值
  • 如果第一个单元格是ensure,则它后面跟的是方法名,返回的布尔值如果是true就变成绿色,如果是false就变成红色
  • 如果第一个单元格是reject,则它后面跟的是方法名,返回的布尔值如果是false就变成绿色,返回的布尔值如果是true就变成红色
  • 如果第一个单元格是note,则在执行的时候就会忽略(空格,以#或者*开头的都是这种效果)
  • 如果第一个单元格是show,则它后面跟的是方法名,当这个测试运行的时候,一个新的单元格将会被添加,显示的是该方法的返回值
  • 如果第一个单元格是start,它后面跟的应该是一个新的类名和构造函数的参数,会开始一个新的actor,覆盖上面的,它下面的script都会沿用该actor
时间: 2024-08-30 05:11:56

Fitnesse Slim使用 - ScriptTable的相关文章

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 Slim使用 - QueryTable

Fitnesse Slim使用 - QueryTable 2017-09-28 Query Table的格式如下: Query:employees hired before 10-Dec-1980 company number employee number first name last name hire date 4808147 9942 Bill Mitchell 19-Dec-1966 4808147 1429 Bob Martin 10-Oct-1975 也可以让单元为空,测试是会自

扩展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当中,所有的测试都以表格的形式

Scenario:模块化定义Fitnesse测试用例的能力和局限

首先普及一下概念,什么是Fitnesse,听一听.NET版Cucumber的创始人Aslak Hellesøy谈Fitnesse与Cucumber对比: FIT/Fitnesse和Cucumber都执行高级语言编写的验收测试.FIT仅识别HTML,Fitnesse则通过提供Wiki语法来简化编写测试的过程.在FIT/Fitnesse当中,所有的测试都以表格的形式呈现. FitNesse比Cucumber的优势在于Wiki支持. 原文链接:http://www.infoq.com/cn/news/

接口测试目录导航

接口测试目录导航 2017-12-29 [1] 接口测试基础与工具 [2] 接口测试框架概述 [3] 接口测试框架结构与功能介绍 [4] 接口测试框架客户端部署及使用 相关工具 fitnesse [1] fitnesse - 框架介绍 [2] fitnesse - 安装部署 [3] fitnesse - 一个简单的例子(slim) [4] Fitnesse - Slim Tables [5] fitnesse - Variables and Symbols [6] fitnesse - 特殊Pa

Fitnesse使用系列二

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

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的一个简单实例

Fixture 代码 package eg; import org.joda.time.DateTime; public class JodaTime { int year; public String getCurrentTime() { DateTime dateTime = new DateTime(); return String.valueOf(dateTime); } public int getYear(){ DateTime dateTime = new DateTime();

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插件