| script |
| given test page |
Testpage |
| and Test System setup is |
!define TEST_SYSTEM {slim}
!path lib/*.jar
|
| and Setup content is |
|import |
|fitnesse.slim.test |
|
| and Test content is |
!-
| import |
| fitnesse.slim.test |
if you expect an exception you can test for it and pass the test
use the keyword EXCEPTION:
| Test Slim |
| # Scenario |
throw Normal? |
throw Exception With Message? |
| Testing for an expected Exception |
EXCEPTION:=~/This is my exception/ |
EXCEPTION:=~/Test message/ |
| otherwise error is indicated. Watch how an exception with message is displayed shorter compared to a normal exception |
This is my exception |
Test message |
if you expect an exception but there is non then the cell will fail
| Test Slim |
| string |
getStringArg? |
getStringArg? |
| Hello |
Hello |
EXCEPTION: Hello |
An exception occurring in a not cell specific function call is added to the current row.
This applies to: execute, reset, table, beginTable, endTable
| DT:fitnesse.slim.test.DecisionTableExecuteThrows |
| x |
x? |
| 5 |
5 |
and also to constructor failures
| DT:ConstructorThrows |
test goes on |
| x |
x? |
| 5 |
5 |
Multiple exceptions can happen in one row and in a in cell in the same row
| DT:fitnesse.slim.test.DecisionTableExecuteThrows |
| Which Methods Fail |
x |
x? |
| NONE |
5 |
5 |
| execute setX getX |
5 |
5 |
| reset |
2 |
2 |
| reset |
5 |
5 |
Everything goes wrong - Fitnesse catches all 7 exceptions
The exceptions are added at the right level:
- cell - for getter and setter
- row - for reset and execute
- table - for table, beginTable and endTable
| DT:fitnesse.slim.test.DecisionTableExecuteThrows |
Total Disaster |
| x |
x? |
| 5 |
5 |
Scripts behave like decision tables
| script:fitnesse.slim.test.DecisionTableExecuteThrows |
| check |
execute |
EXCEPTION: =~/EXECUTE_THROWS/ |
A stop test is counted as fail and not as error
| script:ConstructorThrows |
stop test |
| check |
execute |
Not reached as test is stopped |
-!
|
| when page |
Testpage |
is tested and HTML is extracted |
| then |
8 |
assertions pass, |
1 |
fail, |
0 |
are ignored |
18 |
exceptions thrown |
| and cell |
.This is my exception. found in:[^<]* |
has result |
pass |
| and cell |
.Test message. found in:[^<]* |
has result |
pass |
| and cell |
This is my exception./span>./td>./tr>.tr class="exception-detail closed-detail">.td>__EXCEPTION__:java.lang.Excep[^<]* |
has result |
error |
| and cell |
Test message |
has result |
error |
| and cell |
java.lang.RuntimeException: test goes on |
has result |
error |
| and cell |
The instance decisionTable_\d.setX. does not exist |
has result |
error |
| and cell |
5..span...td...tr..tr class="exception-detail closed-detail"..td.__EXCEPTION__:fitnesse.slim.SlimError: SETX_THROWS[^<]* |
has result |
error |
| and cell |
.table>.tr class="exception closed">.td> .span class="error">5 |
has result |
error |
| and cell |
5..span...td...tr..tr class="exception-detail closed-detail"..td.__EXCEPTION__:fitnesse.slim.SlimError: GETX_THROWS[^<]* |
has result |
error |
| and cell |
.td colspan="2">.pre>__EXCEPTION__:fitnesse.slim.SlimError: ENDTABLE_THROWS[^<]* |
has result |
exception-detail closed-detail |
| and cell |
.td colspan="2">.pre>__EXCEPTION__:fitnesse.slim.SlimError: BEGINTABLE_THROWS[^<]* |
has result |
exception-detail closed-detail |
| and cell |
.td colspan="2">.pre>__EXCEPTION__:fitnesse.slim.SlimError: DOTABLE_THROWS[^<]* |
has result |
exception-detail closed-detail |
| and cell |
expected ..span class="diff".EXCEPTION: ..span.Hello. |
has result |
fail |
| and cell |
EXCEPTION:../span>Hello] |
has result |
diff |
| and cell |
fitnesse.slim.test.StopTestException: stop test |
has result |
fail |
| and cell |
Test not run |
has result |
ignore |
| # show Symbol |
$HTML_Input |
| show Symbol |
$HTML_Result |
| get collapsed executon log for page |
Testpage |