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 |