joshhanley/livewire-dusk-extension

Laravel Dusk 测试辅助扩展,用于测试 Livewire 组件。

v0.3.0 2022-09-06 06:15 UTC

This package is auto-updated.

Last update: 2024-09-06 10:31:23 UTC


README

Livewire Dusk 扩展为您的应用程序中单个 Livewire 组件的 Laravel Dusk 测试提供了支持。

入门指南

建议在阅读此文档之前先阅读这些包的文档

安装

要从 composer 安装,请在终端运行以下命令

composer require --dev joshhanley/livewire-dusk-extension

使用方法

要使用此包,您需要

确保 Laravel Dusk 已安装并配置

确保 Laravel Dusk 已安装并配置,具体请参照 Laravel Dusk 文档

更新 DuskTestCase

Laravel Dusk 创建了一个名为 tests\DuskTestCase.php 的文件,需要更新为扩展 LivewireDuskExtension

use LivewireDuskExtension\LivewireDuskExtensionTestCase;

abstract class DuskTestCase extends LivewireDuskExtensionTestCase

配置测试目录和命名空间

此包假设您在项目根目录下有一个名为 tests\Browser 的目录,并且其命名空间为 Tests\Browser

如果您有不同的配置,可以发布 Livewire Dusk 扩展配置并指定您的测试命名空间和目录。

要发布配置,请运行

php artisan vendor:publish --provider="LivewireDuskExtension\LivewireDuskExtensionServiceProvider"

然后打开配置文件,并将 test-directories 数组更新为您的测试命名空间和目录详情,其中命名空间是键,目录是值。

'test-directories' => [
    'My\\Custom\\Namespace' => base_path('my/custom/namespace'),
],

创建测试

现在您可以使用 $browser->livewire() 创建 dusk 测试来测试您的组件。

为此,将您想测试的组件的类名传递给 $browser->livewire() 方法。

然后您可以从 livewire() 调用链中添加断言。

public function testExample()
{
    $this->browse(function (Browser $browser) {
        $browser->livewire(SampleComponent::class)
            ->assertSee('Sample!');
    });
}

使用测试组件

如果您不想测试您应用程序中存在的 Livewire 组件,而是想测试类似 Blade 组件(具有 Livewire 交互性)的东西,那么您可以创建一个测试 Livewire 组件。

在测试目录中创建一个 Livewire 组件,并在测试中引用它。此包将为您自动加载组件。

然后在您的测试组件中,您可以包含任何您想测试的 Blade 组件或 Alpine 等。

故障排除

这是一个 Laravel Dusk 的便利包装,旨在使测试应用程序中的 Livewire 组件更加容易。

有关故障排除,请参阅相关包的文档。