Scenario Libraries
Included page: .FitNesse.SuiteAcceptanceTests.ScenarioLibrary (edit)
| scenario |
given page |
page |
with content |
content |
| create page |
@page |
with content |
@content |
| $IT= |
echo |
@page |
| scenario |
given page |
page |
| given page |
@page |
with content |
nothing |
| scenario |
given test page |
page |
| given page |
@page |
| make |
@page |
a test page |
| scenario |
given slim test page |
page |
| given page |
@page |
with content |
!define TEST_SYSTEM {slim} |
| make |
@page |
a test page |
| scenario |
page |
source |
should have link to |
target |
| check |
request page |
@source |
200 |
| ensure |
content contains |
<a href="@target"> |
| $IT= |
echo |
@source |
| scenario |
it should have link to |
target |
| page |
$IT |
should have link to |
@target |
| scenario |
and it should have link to |
target |
| page |
$IT |
should have link to |
@target |
| scenario |
page |
source |
should have creating link to |
target |
| check |
request page |
@source |
200 |
| ensure |
content contains |
@target<a title="create page" href="@target?edit&nonExistent=true">[?]</a> |
| scenario |
it should have creating link to |
target |
| page |
$IT |
should have creating link to |
@target |
| scenario |
page |
source |
should contain |
text |
| check |
request page |
@source |
200 |
| ensure |
content contains |
@text |
| show |
content |
| scenario |
page |
source |
should not contain |
text |
| check |
request page |
@source |
200 |
| reject |
content contains |
@text |
| show |
content |
| scenario |
page |
source |
should match |
text |
| check |
request page |
@source |
200 |
| ensure |
content matches |
@text |
| show |
content |
| scenario |
it should contain |
text |
| page |
$IT |
should contain |
@text |
| scenario |
it should not contain |
text |
| page |
$IT |
should not contain |
@text |
| scenario |
it should contain |
text |
in line |
symbol |
| check |
request page |
$IT |
200 |
| $@symbol= |
line number containing |
@text |
| scenario |
it should match |
text |
| page |
$IT |
should match |
@text |
| scenario |
test results for page |
source |
should contain |
text |
| check |
request page |
@source?test |
200 |
| ensure |
content contains |
@text |
| show |
content |
| scenario |
its test results should contain |
text |
| test results for page |
$IT |
should contain |
@text |
| scenario |
test ressults for page |
source |
should not contain |
text |
| check |
request page |
@source?test |
200 |
| reject |
content contains |
@text |
| show |
content |
| scenario |
and should contain |
text |
| ensure |
content contains |
@text |
| show |
content |
| scenario |
and should match |
text |
| ensure |
content matches |
@text |
| show |
content |
| scenario |
and should not contain |
text |
| reject |
content contains |
@text |
| show |
content |
| scenario |
widget |
wikiText |
should render |
htmlText |
| create page |
WidgetPage |
with content |
@wikiText |
| check |
request page |
WidgetPage |
200 |
| ensure |
content matches |
@htmlText |
| show |
content |
| scenario |
the line |
after |
should come after |
before |
| check |
echo int |
$@before |
< $@after |
| import |
| fitnesse.slim.test |
The fixture chaining with instances allows you to store an object instance in a Slim symbol and to use the instance as the table actor for an arbitrary Slim table.
Here createTestSlimWithString(string) is a factory method that creates a new TestSlim instance, sets the given string and returns the object.
see
SlimSymbolCanHoldInstanceUsedAsParameter
| script |
test slim |
| $TEST_SLIM_INSTANCE= |
create test slim with string |
Uncle |
| start |
$TEST_SLIM_INSTANCE |
| check |
get string arg |
Uncle |
We can use it for a decision table.
| $TEST_SLIM_INSTANCE |
| get string arg? |
| Uncle |
The SlimHelperLibrary is a class that is automatically available as a library fixture. It contains methods to get and set the script table actor in the Slim StatementExecutor.
- getFixture() returns the current table actor
- pushFixture() gets the current table actor and pushes it onto a stack
- popFixture() pops the actor from the stack and sets it in the StatementExecutor
The pushFixture() and popFixture() methods can be used to have scenarios that change the current actor, but restore it at the end of the scenario.
So a scenario can behave more like a sub routine with local scope (but is not limited to it).
| scenario |
do something with |
name |
and restore old fixture |
| push fixture |
| start |
test slim |
| set string |
@name |
| check |
get fixture |
TestSlim: 0, @name |
| check |
get string arg |
@name |
| $@name_INSTANCE= |
get fixture |
| pop fixture |
| script |
test slim |
2 |
| set string |
Uncle |
| check |
get fixture |
TestSlim: 2, Uncle |
| do something with |
Bob |
and restore old fixture |
| check |
get string arg |
Uncle |
| script |
$Bob_INSTANCE |
| check |
get string arg |
Bob |