Skip to content

Latest commit

 

History

History
105 lines (69 loc) · 2.14 KB

README.md

File metadata and controls

105 lines (69 loc) · 2.14 KB

Espérance

master: Build Status develop: Build Status

BDD style assertion library for PHP.

Heavily inspired by expect.js.

Usage

Installation

Espérance can be installed using Composer.

At first, save below as composer.json at the root of your project.

{
    "require": {
        "esperance/esperance": "dev-master"
    }
}

And run these commands.

$ wget http://getcomposer.org/composer.phar
$ php composer.phar install

Then Espérance would be installed in ./vendor directory and also ./vendor/autoload.php is generated.

Very minimal testing script by hand

Just define your expect method or function to construt Esperance\Assertion object.

<?php
require './vendor/autoload.php';

function expect($obj) {
    return new \Esperance\Assertion($obj);
}

expect(1)->to->be(1);

echo "All tests passed.", PHP_EOL;

PHPUnit integrtion

Use esperance/esperance-phpunit.

Extension

Extension using event dispatcher is available.

Events

  • before_assertion \Esperance\Assertion->beforeAssertion($callback)
  • assertion_success \Esperance\Assertion->onAssertionSuccess($callback)
  • assertion_failure \Esperance\Assertion->onAssertionFailure($callback)

Usage

Assertion counter example.

<?php
require './vendor/autoload.php';

$count = $success = $failure = 0;

function expect($subject) {
    global $count, $success, $failure;

    $extension = new \Esperance\Extension;
    $extension->beforeAssertion(function () use (&$count) {
        $count++;
    });

    return new \Esperance\Assertion($subject, $extension);
}

expect(NULL)->to->be(NULL);
expect(0)->to->be(0);
expect(1)->to->be(1);

echo "Count: {$count}", PHP_EOL; // => Count: 3

License

The MIT License

Author

Yuya Takeyama