spatie / pest-plugin-test-time
A Pest 插件用于控制时间流
2.2.0
2024-09-20 13:40 UTC
Requires
- php: ^8.1
- nesbot/carbon: ^2.65|^3
- pestphp/pest: ^2.0|^3.0
- spatie/test-time: ^1.3.2
Requires (Dev)
- spatie/ray: ^1.36
README
此 Pest 插件提供了一个名为 testTime
的函数,允许您在测试中冻结和操作当前时间。
use function Spatie\PestPluginTestTime\testTime; testTime()->freeze(); // time will not change anymore testTime()->addMinute(); // move time forward one minute
它还包含一个名为 toBeCarbon
的自定义期望,可以轻松检查 Carbon
实例的值。
$carbon = Carbon::createFromFormat('Y-m-d H:i:s', '2022-05-31 01:02:03'); // make an expectation on the whole date, including time expect($carbon)->toBeCarbon('2022-05-31 01:02:03'); // make an expectation on only the date part expect($carbon)->toBeCarbon('2022-05-31'); // explicitly pass in a format expect($carbon)->toBeCarbon('2022', 'Y');
支持我们
我们在创建 一流的开放式软件包 上投入了大量资源。您可以通过 购买我们的付费产品之一 来支持我们。
我们非常感谢您从您的家乡寄给我们一张明信片,说明您正在使用我们哪个软件包。您可以在 我们的联系页面 上找到我们的地址。我们将所有收到的明信片发布在我们的 虚拟明信片墙 上。
要求
此软件包是围绕 Carbon 的 setTestNow()
函数的包装。因此,您只能在使用 Carbon 的项目中使用此 Pest 插件。
安装
您可以通过 composer 安装此软件包。
composer require spatie/pest-plugin-test-time --dev
使用
您可以在 testTime
函数上调用 freeze
来冻结当前时间。
use Carbon\Carbon; use function Spatie\PestPluginTestTime\testTime; testTime()->freeze(); // the current time will not change anymore Carbon::now(); // returns the time sleep(2); Carbon::now(); // will return the same time as above
在特定时间点冻结
您也可以通过传递格式为 Y-m-d H:i:s
的时间来在特定时间点冻结时间。
testTime()->freeze('2021-01-02 12:34:56'); \Carbon\Carbon::now()->format('Y-m-d H:i:s') // returns '2021-01-02 12:34:56';
更改时间
您可以通过调用 Carbon
上可用的任何 add
和 sub
函数来更改时间。
testTime()->freeze('2021-01-02 12:34:56'); testTime()->addHour(); // time is now at '2021-01-02 13:34:56' // you can even chain method calls testTime()->subMinute()->addSeconds(2); // time is now at '2021-01-02 13:33:58'
期望一个 Carbon 值
此软件包提供了一个名为 toBeCarbon
的自定义期望,可以轻松检查 Carbon
实例的值。
$carbon = Carbon::createFromFormat('Y-m-d H:i:s', '2022-05-31 01:02:03'); // make an expectation on the whole date, including time expect($carbon)->toBeCarbon('2022-05-31 01:02:03'); // make an expectation on only the date part expect($carbon)->toBeCarbon('2022-05-31'); // explicitly pass in a format expect($carbon)->toBeCarbon('2022', 'Y');
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全漏洞
有关报告安全漏洞的详细信息,请参阅 我们的安全策略。
致谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。