What is Daniel's talk(and upcoming module) and my module going to solve?
- Write less but more readable test code
- Get a useful test description and failure message
If you use
cmp-ok, you get a good error message; but without a test
description it's sometimes hard to understand. Also
cmp-ok and other test functions(most of them,
use-ok being an
exception for example) do not output anything on a successful test, unless you provide the description yourself. I
personally think that test sub routines should generate a description if one is not provided. But of course that
cannot be done with simple functions. Maybe the Test module needs to be rethought in the future?
So I made the T slang which provides the
t keyword for writing test assertions. I didn't
want to make it complicated, so it's a very short and simple slang which takes an expression of form
<got> <infix> <expected>.
The current status of the module: It works for me!
Here are some examples:
use T:auth<zef:CIAash>; t 4 == 4; =output ok 1 - 4 == 4 t $my_great_module.return('something') eq 'something'; =output ok 2 - $my_great_module.return('something') eq 'something' t $my_great_module.return('something else') eq 'something'; =output not ok 3 - $my_great_module.return('something else') eq 'something' # Failed test '$my_great_module.return('something else') eq 'something'' # at ... line ... # expected: "something" # matcher: 'infix:<eq>' # got: "something else"