Don't ask to ask, just ask | |
PerlMonks |
Re: the sorry state of Perl unit testing framework (drop-in replacement)by Dallaylaen (Chaplain) |
on Dec 30, 2016 at 21:21 UTC ( [id://1178686]=note: print w/replies, xml ) | Need Help?? |
Hello, bulk88! If you're still interested in this topic, you might find the following exercise called Test::Refute interesting. Right now it seems to be crystallizing into something very similar to what you're proposing: a cleanroom Test::More counterpart, easily extensible, not keeping passed tests, and also much faster than the original. It's based on powerful $contract->refute( $condition, $message ); primitive. The $contract is an object storing information about (un)met conditions. Or outputting it right away as TAP, if needed. The $message is a human-readable name of the test. The $condition is false if everything is fine and the reason for failure otherwise. One can think of it as of a program exit code that is always 0 on success, but different for different failure modes. So an example "is" implementation looks like follows (real one is a bit longer though, undef handling, quoting etc.): sub { return $_[0] eq $_[1] ? "" : "$_[0]!=$_[1]" };Suddenly this is a pure function! We may need to provide a prototyped exportable wrapper for convenience, but that's left to my builder class. But no builder is required for making test logic. I'm hoping to go beta around mid-January.
In Section
Meditations
|
|