FitNesse. UserGuide. SliM.
ScriptTable [add child]

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.
ensure login with username Bob and password xyzzy
note this is a comment
show number of login attempts
$symbol= login message

The fixture for this table is:
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) {
boolean result = this.userName.equals(userName) && this.password.equals(password);
if (result)
message = String.format("%s logged in.", this.userName);
message = String.format("%s not logged in.", this.userName);
return result;

public String loginMessage() {
return message;

public int numberOfLoginAttempts() {
return loginAttempts;

This should be pretty clear. Each row is a single instruction in the script.