jacobstr/esperance

PHP的BDD风格断言库。

v0.1.4 2015-02-27 21:48 UTC

README

master: 构建状态 develop: 构建状态

PHP的BDD风格断言库。

深受expect.js启发。

用法

安装

Espérance可以通过Composer安装。

首先,将以下内容保存为项目根目录下的composer.json

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

然后运行以下命令。

$ wget https://composer.php.ac.cn/composer.phar
$ php composer.phar install

然后Espérance将被安装在./vendor目录中,并且还会生成./vendor/autoload.php

非常简单的手动测试脚本

只需定义您的expect方法或函数以构造Esperance\Assertion对象。

<?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集成

使用esperance/esperance-phpunit

扩展

使用事件调度器的扩展可用。

事件

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

用法

断言反例。

<?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

许可证

MIT许可证

作者

Yuya Takeyama