http://code.google.com/p/hamcrest/ Hamcrest provides a library of useful, self-describing matcher objects (also known as constraints or predicates) allowing 'match' rules to be defined declaratively, to be used in other frameworks. Hamcrest was originally implemented in jMock and has been spun off into a library that can be used by other projects. It is now also used by JavaUnit, WindowLicker and many other testing libraries. However, it is not a testing library: it just happens that matchers are very useful for testing. Hamcrest has also been used for validating user input, defining event subscription and filtering rules, and other non-testing applications.