Next level assertion library for PHP
Visit the main site and documentation at peridot-php.github.io/leo/.
Leo supports a chainable interface for writing assertions via the expect
function:
expect($obj)->to->have->property('name');
expect($value)->to->be->ok
expect($fn)->to->throw('InvalidArgumentException', 'Expected message');
expect($array)->to->be->an('array');
expect($result)->to->not->be->empty;
Leo supports a more object oriented, non-chainable interface via Assert
:
use Peridot\Leo\Interfaces\Assert;
$assert = new Assert();
$assert->ok(true);
$assert->doesNotThrow($fn, 'Exception');
$assert->isResource(tmpfile());
$assert->notEqual($actual, $expected);
Leo matchers generate detailed error messages for failed assertions:
Leo can be easily customized. For an example see LeoHttpFoundation. Read more on the plugin guide.
make test
Documentation is generated via ApiGen. Simply run:
make docs
Leo was inspired by several great projects:
And of course our work on Peridot gave incentive to make a useful complement.