transcendental-lisp/fitnesse/FitNesseRoot/FitNesse/SuiteAcceptanceTests/SuiteSlimTests/BaseLineDecisionTable/content.txt

79 lines
3.8 KiB
Plaintext
Raw Normal View History

!2 The aim of the baseline decision table is to make tests easier to read.
!3 Background
The idea of a [[decision table][.FitNesse.UserGuide.WritingAcceptanceTests.SliM.DecisionTable]] is to demonstrate how different combinations of input parameters generate different results.
To make the impact of each parameter to the output results transparent it is good practice to modify just one parameter from row to row.
For big tables with many input parameters it is often not immediately visible to the reader which parameter changes from row to row.
!3 Syntax
As a user of the '''baseline decision table''' you specify in the first row below the header in each column the values for all input and output parameters.
This defines your ''base scenario'' and so far this is 100% identical to a normal decision table.
In all following lines you just specify the values which differ from the ''base scenario'' all other columns are left empty.
This makes your table more readable. It is also easier to maintain in case a value must be changed.
Don't repeat yourself is a good rule even when you write test cases. :)
!3 Fixture Code
When the baseline decision table is tested all empty columns are filled by the Slim test system with the corresponding values from the ''base scenario''.
In all other aspects the bahviour is identical to the decision table.
Your fixture code is identical to a [[decision table][.FitNesse.UserGuide.WritingAcceptanceTests.SliM.DecisionTable]]. The fixture will not be able to identif any difference between a baseline decision table and a normal [[decision table][.FitNesse.UserGuide.WritingAcceptanceTests.SliM.DecisionTable]].
!3 Example
Let's look at an example which you know already from the [[Decision Table][.FitNesse.UserGuide.WritingAcceptanceTests.SliM.DecisionTable]]
!*> Dependencies
|import |
|fitnesse.slim.test|
*!
Given I have at least one milk remaining
Then I should NOT go to the store
|baseline: should I buy milk |
|cash in wallet|credit card|pints of milk remaining|go to store?|
|0 |no |1 |no |
| | |2 | |
| | |7 | |
|10 | | | |
| |yes | | |
|10 |yes | | |
|1 | |1 | |
Given I have no milk remaining
And a credit card
Then I should go to the store
|baseline: should I buy milk |
|cash in wallet|credit card|pints of milk remaining|go to store?|
|0 |yes |0 |yes |
|1 | | | |
|2 | | | |
Given I have no milk remaining
And at least three $
Then I should go to the store
|baseline: should I buy milk |
|cash in wallet|credit card|pints of milk remaining|go to store?|
|3 |no |0 |yes |
|10 | | | |
|7 | | | |
| |yes | | |
Given I have no milk remaining
And no credit card
And less then three $
Then I should NOT go to the store
|baseline: should I buy milk |
|cash in wallet|credit card|pints of milk remaining|go to store?|
|0 |no |0 |no |
|1 | | | |
|2 | | | |
!contents -R2 -g -p -f -h