Premise: All known Ruby test frameworks utilize a subclass of Exception to represent a failed assertion. Ruby organizaes exceptions in a hierarchy of related purpose, one class to each error type. Therefore it is reasonable to postulate that assertions can be effectively organized in the same manner modeled as exception subclasses, one for each type of assertion.

Apparatus: The Assay project defines a set of reusable assertion classes mimicking the design of Ruby exception hierarchy. The Assertion class serves as base class for all other assays and is subclass of Exception. A complete set of assay assertion classes are defined for all common assertion needs.

Implementation: Underlying code harnesses BRASS, assertion standards allowing reuse with all compliant test systems. In addition, included adapters provide tighter integration with common legacy test frameworks: TestUnit, MiniTest and RSpec.

Corollary: Third-party assertion grammars can use Assay as solid foundation for own assertion domain languages.

Details of project available at API and QED documentation sites.