GA黄金甲

Laravel中怎样测试妄想使命

laravel是一款盛行的php框架,普遍应用于web应用程序的开发中 。在laravel中,妄想使命(scheduled task)被称为使命调理(task scheduling),它能让我们实现自动化的使命执行,例如在天天某个牢靠时间执行某项使命 。可是,在现实应用中,我们怎样测试妄想使命呢?本文将向你先容laravel中怎样测试妄想使命 。

什么是妄想使命

妄想使命是指在特定的时间或程序状态下自动触发的使命 ?梢宰手颐鞘迪中矶嘧远牟僮,例如天天准时发送邮件,备份数据库,更新缓存等操作 。在Laravel中妄想使命需要通过启动一个历程来完成,Laravel提供了Artisan下令行工具来治理这些历程 。

Laravel中的使命调理

Laravel中的使命调理器可以让我们利便地界说妄想使命,并自动执行使命 。我们只需要界说使命的执行时间、执行频率以及要执行的下令就可以了 。Laravel提供了很是利便的使命调理功效,通过挪用->cron()要领可以实现每分钟、每小时、天天以及每周的使命调理,示例代码如下:

$schedule->command('send:remindemail')
         ->daily()
         ->timezone('Asia/Shanghai')
         ->description('send remind email to user');

登录后复制

以上代码体现,天天在上海时间的0点执行 send:remindemail 下令,并在使命形貌中添加了说明文字 。

Laravel中的使命调理测试

Laravel中提供了一种自动化的使命调理测试要领,我们可以使用Mockery模拟使命的执行,然后通过Laravel自带的测试工具PHPUnit来实现测试 。实现办法如下:

办法1:设置测试情形

我们需要在测试前先设置测试情形,由于测试情形需要模拟生产情形的准时使命 。在 .env 文件中设置 APP_ENV 为 testing ,体现目今是测试情形:

APP_ENV=testing

登录后复制

办法2:建设测试类

我们需要建设一个测试类来测试使命调理器的事情 。测试类可以扩展 Illuminate\Foundation\Testing\TestCase 类,示例代码如下:

namespace Tests;

use Illuminate\Foundation\Testing\TestCase as BaseTestCase;

abstract class TestCase extends BaseTestCase
{
    use CreatesApplication;
}

登录后复制

办法3:界说测试要领

我们可以在测试类中界说测试要领,先使用 Mockery 模拟要执行的下令,然后执行使命调理器的界说使命 。在使命执行完毕后,可以使用 PHPUnit 提供的一系列断言要领来判断使命是否被准确执行 。示例代码如下:

namespace Tests\Feature;

use App\Console\Commands\SendRemindEmail;
use Tests\TestCase;
use Mockery;
use Illuminate\Support\Facades\Artisan;

class TaskSchedulerTest extends TestCase
{
    public function testTaskScheduler()
    {
        // Arrange
        $remindEmailCommandMock = Mockery::mock(SendRemindEmail::class);
        $remindEmailCommandMock->shouldReceive('handle')->once();
        $this->app->instance(SendRemindEmail::class, $remindEmailCommandMock);

        // Act
        Artisan::call('schedule:run');

        // Assert
        // add your assertions here
    }
}

登录后复制

在上述示例代码中,我们首先模拟了 SendRemindEmail 下令,并设置该下令好比会被执行一次 。然后,我们通过 Artisan 程序挪用了使命调理器,并期待使命执行完成 。最后,我们可以使用PHPUnit提供的种种断言要领来判断下令执行是否乐成 。

办法4:运行测试

当我们完成界说测试用例后,就可以使用PHPUnit的下令来运行测试了:

./vendor/bin/phpunit

登录后复制

在测试历程中,我们可以阻挡到使命调理器执行使命的历程,并通过断言来判断使命是否正常执行 。

总结

在本篇文章中,我们简朴先容了Laravel中的使命调理器以及怎样对使命调理器举行单位测试 。妄想使命可以资助我们实现许多自动化操作,并让GA黄金甲应用越发高效和便捷 。同时,优异的测试也可以让我们越发定心地使用妄想使命,包管使命能够正常执行 。

以上就是Laravel中怎样测试妄想使命的详细内容,更多请关注本网内其它相关文章!

免责说明:以上展示内容泉源于相助媒体、企业机构、网友提供或网络网络整理,版权争议与本站无关,文章涉及看法与看法不代表GA黄金甲滤油机网官方态度,请读者仅做参考 。本文接待转载,转载请说明来由 。若您以为本文侵占了您的版权信息,或您发明该内容有任何涉及有违公德、冒犯执法等违法信息,请您连忙联系GA黄金甲实时修正或删除 。

相关新闻

联系GA黄金甲

18523999891

可微信在线咨询

事情时间:周一至周五,9:30-18:30,节沐日休息

QR code
【网站地图】【sitemap】