spatie/pest-plugin-test-time

A Pest 插件用于控制时间流

资助包维护!
spatie

2.2.0 2024-09-20 13:40 UTC

This package is auto-updated.

Last update: 2024-09-20 13:42:44 UTC


README

Latest Version on Packagist Tests Total Downloads

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 上可用的任何 addsub 函数来更改时间。

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)。有关更多信息,请参阅 许可文件