Delphi FIT
Written by Salim Nair: Salim@chaaya.com
Downloads:
Source code: http://files/fit/delphi/DelphiFit_src.zipBinaries: http://files/fit/delphi/DelphiFitDelivery.zip
Comments:
This is a bare bones implementation of FIT for Delphi. It supports Fixture and ColumnFixture? but that's plenty to get started.Usage:
Set your COMMAND_PATTERN variable to point to FitServer.exe something like this:!define COMMAND_PATTERN {DelphiFit/FitServer.exe %p}
The %p represents a search path. .FitNesse will generate the search path for you. However you will need to use the !path widget identify necessary path elements. Path elements should be directory paths where .bpl files are contained. The .bpl files are dynamically loaded by FitServer to find the your Fixtures and execute them.
When creating test tables for use by the Delphi FitServer, identify Fixtures by supplying the name of the .bpl file followed by a dot, followed by the name of your Fixture class. In the example below, the Fixture is identified by FixtureLib.ExampleFixture. FitServer will search through the supplied path elements looking for the file FixtureLib.bpl. When found it will be loaded and searched for a Fixture named ExampleFixture. ExampleFixture be loaded and an instance will be created to handle the rest of the table.
| FixtureLib.ExampleFixture |
| ... |
| ... |
Also note that reflection in this implementation of FIT is done through properties. Therefore every column in your ColumnFixtures tables should have a corresponding published property in the Fixture code.
Working Example
Updated By .AndrewMcDonagh
The necessary Fixture code for the example included within the DelphiFit Server.
NOTE: The paths being used expect the Delphi fitserver to be installed within the FitNesse? directory.
For example, C:\FitNesse\DelphiFit\
If that is not the case, then the exact paths will need to be used.
Copy & paste the following into your own test page
!path DelphiFit/bin/addFixture1
!define COMMAND_PATTERN {DelphiFit/bin/FitServer.exe -v %p}
|AddFixture|
| firstValue | secondValue | resultant() |
| 1 | 2 | 3 |
| 2 | 2 | 5 |
| 3000 | 2 | 3002 |
| 200 | 2 | 203 |
| 10 | 2 | 12 |
Known issues:
- Note the difference of how to specify method calls, instead of putting a '?' after a column name to tell FitNesse? this is our column of expected outputs, we (currently) have to use '()'.
- The Table Fixture name can not have spaces within in it - as the DelphiFit server doesn't remove them internally, and so fails to find the fixture class. Because of this, we have to use the actual class name that then looks like a WikiWord? - so marking it as Literal text is then needed (see above).
[.FrontPage] [.RecentChanges]