akondas / exspecto
用于同步异步操作(忙等待)的PHP DSL
1.1.0
2024-01-22 12:50 UTC
Requires
- php: >=7.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.2
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-23 10:30:08 UTC
README
用于同步异步操作(忙等待)的PHP DSL。
一个简单且有用的库,特别推荐用于测试异步系统。Exspecto 允许你以简洁且易于阅读的方式表达对异步系统的期望。示例
await()->atMost(1)->until(function() { return customerStatusIsUpdated(); });
你可以使用 pollInterval
来设置条件应该检查的频率(默认值为100毫秒)
await()->atMost(3)->pollInterval(200)->until(function() { return customerStatusIsUpdated(); });
如果返回的方法(闭包)可能抛出异常,你也可以等待给定的值
$value = await()->atMost(3)->pollInterval(200)->on(fn() => getValue());
exspecto - 来自拉丁语:等待,期待
安装
composer require akondas/exspecto
路线图
- 例如:
untilAsserted('UserRepository::size', equaltTo(3))
- 支持不同的轮询间隔策略(固定、斐波那契、迭代)
-
ignoreExceptions
发生异常时不停止(ignoreException(string $exceptionClass)
) -
至少
-
unitlNotNull
、untilNull
等。
许可证
Exspecto 在MIT许可证下发布。有关详细信息,请参阅捆绑的LICENSE文件。
作者
Arkadiusz Kondas (@ArkadiuszKondas)