Next level assertion and matcher library for PHP
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
scripts
specs
src
.gitignore
.php_cs
.scrutinizer.yml
.travis.yml
CHANGELOG.md
CONTRIBUTING.md
LICENSE
Makefile
README.md
apigen.neon
appveyor.yml
composer.json
composer.lock
leo.png
message.png
peridot.php

README.md

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.