Laravel Tenancy Testing

近期公司專案需要使用到 multi-tenancy 架構,所以我想分享一下使用這個架構時的測試經驗。 我使用了 Laravel Tenancy V3 套件來實現多租戶功能。在寫測試時,我們依照這個套件並新增測試。 Testing 新增 Trait 方便測試與使用 <?php namespace Tests\Traits; use App\Models\TenantModel; use Illuminate\Contracts\Console\Kernel; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\URL; use Stancl\Tenancy\Events\SyncedResourceSaved; trait InteractsWithTenancy { public array $tenants = []; public string $defaultTenant = 'domainA'; private static bool $migrated = false; protected string $databasePrefix = 'test_tenant_'; protected string $domainPrefix = 'test_tenant_'; protected bool $disableSyncMaster = true; public function setUpInteractsWithTenancy(): void { $databasePrefix = $this->databasePrefix; config(['tenancy.database.prefix' => $databasePrefix]); $this->tenants = empty($this->tenants) ?...

July 22, 2023 · 2 min