The Fit Acceptance Testing Framework

Fit ("Framework for Integrated Testing"), also often spelled FIT is the engine that actually processes each FitNesse test table, using the Fixture Code referred to by that table. The idea of test tables and the set of >Test Table Styles come from Fit. Examples of use can be found in the Fixture Gallery.

FitNesse is an HTML and wiki "front-end" to Fit. While Fit makes it possible to run test tables, it does not itself provide an easy means of creating those tables or displaying the results of those tests. This is where FitNesse comes in. FitNesse makes it really easy to create, run, organize, annotate, and share Fit tests throughout a software development team.

Interestingly both the wiki and Fit were developed by Ward Cunningham, and you can read about them both on Ward's c2 wiki.

Throughout this User Guide, when we talk about how test tables are run, we often talk about Fit, since it is, in fact, doing the work. But for your purposes as a FitNesse user, Fit is just part of the magic: FitNesse hides Fit from you completely. You really don't need to worry about it at all.

As we've seen, every FitNesse test table begins with a row that contains the classname of the Fixture Code that will interpret the rest of the table. The rest of the rows in a test table depend on which style of table and fixture we are using (each style of test table has its own style of fixture code).

Here we point you to pages that describe each of the styles of FitNesse test table, and the fixture code used to interpret and run them as tests.

The Most Common Table/Fixture Styles

Column Fixture This is the style you may end up using most: rows of data represent inputs and expected outputs.
Row Fixture This is good for testing queries that should return an exact set of values (order-independently).
Action Fixture This style allows you write a script that emulates a series of events (such as controls manipulated on a user interface).
Comment Tables Sometimes you want a tabular comment that is not executed as a test.

Less Frequently-Used Table/Fixture Styles

Row Entry Fixture A special case of Column Fixture for processing rows of data.
Table Fixture A fixture style that lets you create completely custom test table formats, and process them however you like.
Summary Fixture A fixture that generates a report of all the tests on a page.

Some Table and Fixture Examples

PayrollTests An example using Column Fixture

Some extra things about Fit Tables that vary from port to port.

Symbols In Test Tables Some ports of FIT allow symbols to be passed in Column and Row fixtures. This is very inconsistent amongst the different FIT ports.
Keywords In Test Tables Some ports of FIT allow keywords blank, null, and error. This is very inconsistent between FIT ports.
Comparison Expressions In Fixtures You can put comparison expressions in the cells of your test tables.
Parameters In Fixtures Allows you to pass arguments into a fixture.
Data Types In Fixtures Which data types FitNesse and Fit can handle in test tables.
Trouble Shooting Acceptance Tests How to investigate problems when running test tables.

Writing Fit Tables

Writing Fit Tables How to write tests.
Articles and discussions on the design of FitNesse

>Fit Server The protocol between FitNesse and Fit.