Concepts
Specification
A specification is a document containing informal text and one or more formalized tables. The text is purely descriptive. The tables specify expectations for the system under test.
Pax Carrot works with HTML documents. Other document formats are possible but not currently supported.
Interpreter
An interpreter reads input data from specification tables, triggers the system under test and compares expected with actual results. Having processed a table, the interpreter appends the actual results (or an exception trace) to the table cells and highlights the cells according to the result status.
Pax Carrot includes different kinds of interpreters. The interpreter to be used for a given table is indicated by a keyword in the top-left table cell.
Fixture
A fixture is a piece of software providing the glue logic between a specification table and the system under test. Fixtures are referenced by name from table cells. The fixture name is a simple, descriptive identifier, not necessarily the implementation class name. The interpreter binds table cells to fixture properties using the Java Bean naming convention, with table column headers (or other table content) corresponding to bean properties.
Result Status
Table cells which define an expected result are assigned a result status by the interpreter. The status is visualized by the cell background colour.
Status | Color | Meaning |
|---|---|---|
RIGHT | green | Actual result matches expected result. |
WRONG | red | Actual result does not match expected result. |
IGNORED | grey | There is no expectation, any result in this cell is ignored. |
EXCEPTION | yellow | There was an error in the interpreter or in a fixture method. |
Report
Pax Carrot produces a report with statistics on the number of right, wrong, ignored and exception cells per specification and aggregated statistics for all specifications interpreted in a given run.