laravel 单元测试设置模拟时间
Posted 白桂任的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel 单元测试设置模拟时间相关的知识,希望对你有一定的参考价值。
有时候我们需要对一些超时的逻辑进行测试,需要等待一定的时间来验证超时逻辑是否生效。
Carbon 库提供了 setTestNow 方法来设置一个虚拟的当前时间
使用这个特性的前提是:我们的待测试代码利用 Carbon::now() 来获取当前时间(这种情况获取到的当前时间是我们设置的一个虚拟的当前时间)。
public function test_items_can_expire() { Carbon::setTestNow(Carbon::now()); $store = new ArrayStore; $store->put(‘foo‘, ‘bar‘, 10); Carbon::setTestNow(Carbon::now()->addSeconds(10)->addSecond()); $result = $store->get(‘foo‘); $this->assertNull($result); Carbon::setTestNow(null); }
以上是关于laravel 单元测试设置模拟时间的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 中的单元测试:设置当前经过身份验证的用户时出错