Contents:


variable defined: TestPageName=Testpage
variable defined: minus=-
variable defined: exclamation=!

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