Test::Grammar for Raku
Unit testing for grammars. Because testing is important.
Installing
No dependencies, except Test
which is a Rakudo core library, so the usual
zef install Test::Grammar
.
Running
Copied from the source, version there is the single
source of truth:
use Test::Grammar;
parses-ok Test-Grammar,"num", 3, "33 parses OK";
my $test-output = q:to/EOC/;
ok 1 - bailout parses OK
ok 2 - «bailout» extracts token
1..2
EOC
has-tokens Test-Grammar, "test", <nok num description>, $test-output,
"Complete tests";
token-is Test-Grammar,"bailout", "explanation",
"Bail out! FOOBAR",
"FOOBAR",
"«bailout» extracts token";
for <foo bar b3> {
parses-nok Test-Grammar,"num", $_, "$_ not parsed";
}
See also
There are very nice testing libraries out there:
- T emphasizes output and messages
- Testo is another
opinionated test library.
License
(c) JJ Merelo, jj@raku.org, 2022
Licensed under the Artistic 2.0 License (the same as Raku itself).