ronappleton/spatie-laravel-permission-mock

一个简单的包,允许测试具有权限的用户包。

dev-master 2024-05-19 15:42 UTC

This package is auto-updated.

Last update: 2024-09-19 16:28:09 UTC


README

简介

一个简单的包,以简单的方式模拟权限,以便进行功能测试。

如果您想开发一个使用权限和策略的laravel包,您可能想测试您的包是否按预期工作。此包允许您以简单的方式模拟权限。

我在构建具有权限和策略的单体应用程序时发现了这个很有用。

我想保持我的测试简单,不必担心在测试中设置权限和策略。我还想在我的包中定义权限。

安装

您可以通过composer安装此包

composer require --dev ronappleton/spatie-laravel-permission-mock

用法

如果您的模型使用正常的整数ID字段,您可以在测试中使用以下内容

  • 用户
  • 角色
  • 权限

如果想要为您的模型使用uuids,您可以在测试中使用以下内容

  • 用户Uuid
  • 角色Uuid
  • 权限Uuid

对于uuids,您需要在测试中设置以下内容

use DatabaseMigrations;

protected function setUp(): void
{
    parent::setUp();

    config()->set('mock-permissions.uuids', true);

    $this->artisan('migrate:fresh', ['--database' => 'testing']);
}

然后您可以在测试中创建权限和角色,并将它们分配给用户。

结论

现在您可以使用权限和策略开发包,并测试它们,知道您的测试将覆盖包内的内容,并且您可以依靠当包被拉入您的应用程序时代码能够正常工作。

注意

如果您想向此包添加任何内容,请简单地提交PR,我会添加它,请记住测试。