joshhanley / livewire-dusk-extension
Laravel Dusk 测试辅助扩展,用于测试 Livewire 组件。
Requires
- php: ^7.4|^8.0
- laravel/dusk: ^7.0|dev-master
- livewire/livewire: ^2.3|dev-master
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 组件更加容易。
有关故障排除,请参阅相关包的文档。