Hack用のテストフレームワークが出たので、HackUnitから置き換えました。
github.com
そのついでに、CodegenにHackTestのテストコードを生成できるジェネレーターを追加しました。 github.com
HackUnitからの移行
名前空間をHackUnitからHackTestに置き換えるだけで移行できます。
移行前
use HHPack\Codegen\HackUnit\{TestClassGenerator};
移行後
use HHPack\Codegen\HackTest\{TestClassGenerator};
生成されるテストコード
下記のようなテストコードを生成します。
テストコード自体は、HackTestとFBExpectを使用する前提のコードなので、composerで別途パッケージをイントールする必要があります。
<?hh // strict /** * This file is generated. Do not modify it manually! * * @generated SignedSource<<d89af2ac5307bacbedfa27fd6389c1ff>> */ namespace HHPack\Codegen\Example\Test; use type Facebook\HackTest\HackTest; use function Facebook\FBExpect\expect; final class Bar extends HackTest { public function testExample(): void { expect(true)->toBeTrue(); } }
パッケージのインストールはHackTestのREADME.mdに書いてある通りにコマンドを実行するだけで、インストールできます。
hhvm /path/to/composer.phar require --dev hhvm/hacktest facebook/fbexpect
HackUnit、PHPUnit使わなくて済むのと、オフィシャルのテストフレームワーク(ブログで発表された)ぽいので、これ使った方がいいと思います。