A Hack library for writing unit tests expressively
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
tests
.gitattributes
.gitignore
.hhconfig
.travis.sh
.travis.yml
CONTRIBUTING.md
LICENSE
README.md
composer.json
composer.lock
hh_autoload.json

README.md

Build Status

FBExpect

FBExpect is a standalone unit testing utility based on the notion of assertions from PHPUnit. Starting with 2.x, FBExpect no longer uses PHPUnit as a dependency, and instead implements the assertions directly, and is intentended for use with HackTest.

Examples

Clarity

It is linguistically clear which value is the expected value and which is the actual value:

use function Facebook\FBExpect\expect;

// PHPUnit
$this->assertSame($a, $b);

// FBExpect
expect($b)->toBeSame($a);

Type Refinement

use function Facebook\FBExpect\expect;

// PHPUnit
$this->assertNotNull($x); // Actual test
assert($x !== null); // Tell the typechecker what's going on
$this->assertInstanceOf(Foo::class, $y);
assert($y instanceof Foo);

// FBExpect
$x = expect($x)->toNotBeNull();
$y = expect($y)->toBeInstanceOf(Foo::class);

Installation

FBExpect is installed via composer:

hhvm ~/composer require facebook/fbexpect

License

FBExpect is MIT-licensed.