Any assertion class that expects to plug into Test::Unit::Assert needs to implement this interface.
Requiredmethods
new Creates a new assertion object. Takes whatever arguments you desire. Isn't strictly necessary for
the framework to work with this class but is generally considered a good idea.
do_assertion
This is the important one. If Test::Unit::Assert::assert is called with an object as its first
argument then it does:
$_[0]->do_assertion(@_[1 .. $#_]) ||
$self->fail("Assertion failed");
This means that "do_assertion" should return true if the assertion succeeds and false if it doesn't.
Or, you can fail by throwing a Test::Unit::Failure object, which will get caught further up the stack
and used to produce a sensible error report. Generally it's good practice for do_assertion to die
with a meaningful error on assertion failure rather than just returning false.