nwehr / hhunit
HHVM 的单元测试
v1.0.0
2021-04-17 15:33 UTC
This package is auto-updated.
Last update: 2024-09-17 23:20:15 UTC
README
专门为 Hack 语言编写的单元测试框架。
测试套件
要创建测试套件,请编写具有 <<TestSuite>>
属性的类。单独的测试使用 <<Test>>
属性。您可以使用 <<Skip>>
属性跳过整个测试套件或单独的测试。
<?hh
use hhUnit\Assert;
<<TestSuite>>
class MyTestSuite {
<<Test>>
public function someTest(Assert $assert) : void {
$assert->int(1)->equalTo(1);
}
<<Test, Skip>>
public function skippedTest(Assert $assert) : void {
$assert->bool(true)->not()->equalTo(false);
}
}
断言
Assert
类中提供了所有标量类型。
布尔值
整数
浮点数
字符串
数组
可以在最终断言方法之前调用 not()
来否定任何断言。
$assert->bool(true)->not()->equalTo(false);
布尔断言
$assert->bool(true)->equalTo(true);
整数断言
$assert->int(1)->equalTo(1);
$assert->int(1)->greaterThan(0);
$assert->int(1)->greaterThanOrEqualTo(0);
$assert->int(0)->lessThan(1);
$assert->int(0)->lessThanOrEqualTo(1);
浮点断言
$assert->float(1.1)->equalTo(1.1);
$assert->float(1.2)->greaterThan(1.1);
$assert->float(1.2)->greaterThanOrEqualTo(1.2);
$assert->float(1.1)->lessThan(1.2);
$assert->float(1.1)->lessThanOrEqualTo(1.2);
字符串断言
$assert->string("abc")->equalTo("abc");
$assert->string("abc")->hasLength(3);
$assert->string("gtolemans@gmail.com")->contains("gmail");
$assert->string("gtolemans@gmail.com")->matchesPattern("/^\S+@\S+\.\S+$/");
数组断言
$assert->array([1,2,3])->equalTo([1,2,3]);
$assert->array([1,2,3])->contains(1);
映射断言
$assert->map<string, string>(Map{"key1" => "value1"})->equalTo(Map{"key1" => "value1"});
$assert->map<string, string>(Map{"key1" => "value1"})->containsKey("key1");
向量断言
$assert->vector<string>(Vector{"value1"})->equalTo(Vector{"value1});
$assert->vector<string>(Vector{"value1"})->containsValue("value1");
安装
$ composer require nwehr/hhunit
运行测试
./vendor/bin/hhUnit
测试输出
Test Suites : 5
Tests : 18
Assertions : 20
Assertion Failures : 0
忽略
为了防止 hhUnit 包含单个源文件或整个目录,请在你测试目录中添加一个 .hhunitignore
文件。
.hhunitignore
./IgnoredTestSuite.hh
../ignored_dir