tester.fs (lib) ☞
The tester.fs
library helps you write test assertions.
Usage
Initialise the lib by calling init-tester
first. This resets the test error
counter (the variable #errors
) to 0.
Write test cases between the words T{
and T}
, and use ->
to delimit the
program from the expected stack values.
An example test suite might look like this:
require tester.fs
: run-tests
T{ 1 2 3 rot -> 2 3 1 }T
T{ 4 dup * -> 16 }T
T{ 5 6 tuck over -> 6 5 6 5 }T ;
: main
init-tester
run-tests
#errors ? ." failures" ;
Word Index
T{
( … – )
Marks the start of a test case. Mostly syntactic sugar, but also clears the full stack first.
->
( … – )
Delimits the code to be tested from the expected stack. Essentially stores the full stack (up to 20 values) so it can be compared against the expected values later.
}T
( … – )
Marks the end of the expected test values (and the test case). This will compare
the current stack to the stored stack values (and clear the stack). Increments
the #errors
variable by 1 in case of mismatch.