I've seen this pattern twice now.  The first was when I was writing fitnesse tests for the XP Immersion Payroll problem.  The second time was when I was writing fitnesse tests for ''!-FitNesse-!'' itself.  The tests took the following form:

 1 '''Build''': A table to ''Build'' the test data.  This table has always been based upon a ColumnFixture that has a valid() function.  The rows in the table load data, and the valid() function makes sure it is valid and saves it for subsequent operations.  The valid() function returns a boolean indicating whether the data was valid and properly saved.
 2 '''Operate''': A table to operate on the data.  This table has always been based upon a ColumnFixture and has always had a valid() function.  The columns specify the arguments of the operation and the valid() function performs the operation and return a boolean to indicate success.
 3 '''Check''': One or more tables to validate the operation.  These fixtures have been both ColumnFixtures and RowFixtures.  It is in these tables that the real acceptance tests are performed.  The other two tables just set up conditions for the '''Check''' operation.

!3 Examples:
|[[Test Bold Text][.FitNesse.SuiteAcceptanceTests.SuiteWikiPageResponderTests.TestBoldText]]|''Classic BOC fitnesse test for showing that ''!-FitNesse-!'' deals properly with bold widgets.''|
|[[Add And Pay Test][.FitNesse.PayrollTests.AddAndPayTest]]|''BOC fitnesse test for making sure paychecks are being generated properly.  This test uses two '' ''' ''Check'' ''' ''tables.''|


