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

46 lines
2.2 KiB
Plaintext
Raw Normal View History

!|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|