---
name: "Test::Unit::Assertion"
section: "3pm"
platform: "linux"
package: "libtest-unit-perl"
version: "0.27-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Test::Unit::Assertion"
---

# Test::Unit::Assertion(3pm)

The abstract base class for assertions

## NAME

Test::Unit::Assertion - The abstract base class for assertions

## NAME

Any assertion class that expects to plug into Test::Unit::Assert needs to implement this interface.

### Required methods

- 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.

## AUTHOR

Copyright (c) 2001 Piers Cawley \<pdcawley@iterative-software.com\>.

All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

## SEE ALSO

- •

  Test::Unit::Assert

- •

  Test::Unit::CodeRef

- •

  Test::Unit::Regexp
