/leo

Next level assertion and matcher library for PHP

Primary LanguagePHPMIT LicenseMIT

Leo logo

Leo

Next level assertion library for PHP

Current version image Current build status image Current Scrutinizer code quality image Current coverage status image

Visit the main site and documentation at peridot-php.github.io/leo/.

Expect Interface

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;

Assert Interface

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);

Detailed error messages

Leo matchers generate detailed error messages for failed assertions:

Leo messages

Plugins

Leo can be easily customized. For an example see LeoHttpFoundation. Read more on the plugin guide.

Running Tests

make test

Generating Docs

Documentation is generated via ApiGen. Simply run:

make docs

Thanks

Leo was inspired by several great projects:

And of course our work on Peridot gave incentive to make a useful complement.