This repository was archived by the owner on Jun 1, 2024. It is now read-only.
- Notifications
You must be signed in to change notification settings - Fork13
A unit testing framework for Hack
License
NotificationsYou must be signed in to change notification settings
hhvm/hacktest
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
HackTest is a unit test runner and base class. Assertions are providedby separate libraries, suchfbexpect.
php /path/to/composer.phar require --dev hhvm/hacktest facebook/fbexpect
To run tests:
vendor/bin/hacktest [OPTIONS] tests/
Tests are methods in classes, where:
- the class name matches the file name
- the class name ends with 'Test'
- the method is public
- the method name begins with 'test'
Test methods can be async, and will automatically be awaited.
Additionally, classes can implement several special methods:
public static function beforeFirstTestAsync(): Awaitable<void>
public static function afterLastTestAsync(): Awaitable<void>
public function beforeEachTestAsync(): Awaitable<void>
public function afterEachTestAsync(): Awaitable<void>
Finally, for data-driven tests, the<<DataProvider>>
attribute can be used:
publicfunctionprovideFoos():vec<(string,int)> {returnvec[tuple('foo',123),tuple('bar',456), ];}<<DataProvider('provideFoos')>>publicfunctiontestFoos(string$a,int$b):void {....}
$ vendor/bin/hacktest tests/clean/exit/...Summary: 3 test(s), 3 passed, 0 failed, 0 skipped, 0 error(s).
$ vendor/bin/hacktest tests/dirty/DirtyAsyncTest.phpFFF1) DirtyAsyncTest::testWithNonNullableTypesAsyncFailed asserting that Array &0 ( 0 => 1 1 => 'foo') is not identical to Array &0 ( 0 => 1 1 => 'foo')./fakepath/hacktest/tests/dirty/DirtyAsyncTest.php(22): Facebook\FBExpect\ExpectObj->toNotBeSame()/fakepath/hacktest/src/Framework/HackTestCase.php(43): DirtyAsyncTest->testWithNonNullableTypesAsync()2)...Summary: 3 test(s), 0 passed, 3 failed, 0 skipped, 0 error(s).
For an example in verbose mode, seeexample.txt
SeeCONTRIBUTING.md.
The HackTest framework is MIT-licensed.
About
A unit testing framework for Hack
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.